contract
6.2.0
Contract 6.2.0
The rankings family, after the Elixir Gym's regression run (feedback #71-#74 and #76, 2026-09-20). The material one is a label: the live Path of Legends board is the API's top 1,000 (probed: limit=5 returns a cursor, limit=1000 and 2000 return 1,000 rows with none, and a cursor at position 1000 returns an empty page) and every surface that served it described a rating floor. The recorder stores exactly what the API returns (Iceland's board is two rows); nothing was dropped, and the cutoff rising through a season is correct - the word was wrong.
snapshot.depth(1,000 on a live board, 9,999 on a season final) andsnapshot.fullonrankings_players,rankings_clansandrankings_clan_ladder;snapshot.floor_rating(the last place's rating) on the player boards. A full board carries a note saying whose cut it is (truncated: falsethere means the API served nothing past depth) and thatfloor_ratingis a cutoff that moves, not a qualification threshold: a player or clan can leave the board without losing rating. The standing floor note describes both regimes, and the two 'rated_players rises through a season' clauses are gone - it moves with the cutoff as well as with play, and can fall while every one of a clan's players improves.rankings_timeline: the board curve's points carrydepth,fullandfloor_delta(the cutoff's move since the previous point); a clan's points carryboard_fullandboard_floor_ratingbesiderated_players; a note counts the points at depth. A season final is described as the API's 9,999 places, cut mid-tie (S135 ends in a nine-way tie at #9999), not 'full depth'.rankings_timelinenames the recording horizon (feedback #72):meta.recorded_sinceon every rankings read, and a window that starts a day or more before the board's first snapshot echoesapplied.window.partial: truewithcovers(the recorded span, or null when none of the window is) and a note - 'unrecorded for the window, not unchanged' when the series is empty, 'covers 2026-09-11 onward' when it is clipped.rankings_playersandrankings_clansread the horizon from the table on anas_ofbefore it, instead of a date in the code;rankings_clansgains the as_of sentence it lacked.pol_final(feedback #73):applied.seasonis always echoed (the resolved ordinal, or null) withseason_requestedbeside it, and a miss says which of four things it is - a season that has not happened (naming the current one), the season in progress (naming when its final is fetched), a season before the ranked ladder began at S89 (the number a player reads off the in-game Pass, with the pointer to game_clock), or a settled season the schedule has not fetched yet. Nopol_finalnote offerslive: true, which the tool refuses.- Every published input schema declares
verbosity(feedback #74): the eleven two-size tools in their own words, the rest as accepted-and-ignored. 6.0.0 accepted the argument server-side while the schemas still saidadditionalProperties: falsewithout it, so a client that validates arguments before dispatch refused the call locally and never saw the note.
Additive.