Contract 1.0: one set of conventions, and the service explains itself
Every tool now follows the same rules, and the rules are written down. The two tools that start recording are named for what they do: elixir_track_player and elixir_track_clan (tracked means recorded, as before). Every windowed tool takes from and to, with days and weeks as shorthand, and every windowed answer echoes an applied block saying which window it used and whether you chose it, the tool defaulted it, or nothing bounded it; battles_decks no longer returns all-time without saying so. verbosity: compact is the one way to ask for less, on the roster, the current war, the level curve, your collection and the card catalog as well as the battle list. clans_roster and war_current take live: true for any clan, recorded or not, and battles_query can poll a player's log once before answering; live_fetch refuses a raw battle log, which never fit the delivery cap anyway, and points at that. The caveats on an answer are a notes list of single sentences plus a docs pointer into the page that carries the formulas, and the documentation grew four pages to carry them: Choosing a tool, the Glossary, The battle model and Time and clocks. The documentation, examples, changelog, updates and card catalog are also MCP resources, and the eleven examples are prompts, so a client that cached its tool list weeks ago can still read the manual. Connecting a client offers every capability, ticked, on the consent page instead of the read-only minimum. Every response says whether the event feed or a feedback reply is waiting, so an agent polls only when there is something to read. Two error codes are new so an agent can branch without reading English: no_subject when there is nobody to answer about, and result_too_large when the answer needs narrowing.