Contract
3.18.0
Tool contract 3.18.0
The seam (docs/reviews/2026-09-19-INTERFACE-REVIEW.md Part 3.2, 6 and 7, Phase 5).
elixir_timelinetakesreader(a short name for this consumer's read pointer): an omittedfromreads since that reader's pointer,mark_readmoves it,read_toreports it, and other readers on the account and the account's own unnamed pointer are untouched.meta.timeline_pendingcounts admissions since the OLDEST named pointer when any reader has marked, so a consumer that names itself sees it fall to 0 after its read.- An empty timeline window is cheap: one probe off the battle
created_atindex says whether the clan learned a battle in the window before the day-wide member scans run. - Every error body carries
class(retry|input|subject|server|budget;ERROR_CLASSin the contracts package):live_pendingandquery_timeoutareretry,internalandlive_unavailableareserver,quota_exceededisbudget, the restinputorsubject. - The subject tools take
display_namebesideon_behalf_of, and an unmapped id'sno_subjectcarriescandidates[](the clan members whose whole name matches;player_tag,name,clan_tag,role) with a hint that names the oneelixir_identifycall. elixir_feedbacktakesrequest_ids[]besiderequest_id.outputSchemadeclared onelixir_my_feedback,rankings_players,war_history,battles_meta_decks,battles_meta_cards,battles_levelsandclans_participation(tools/listand the tool reference render them; the registry validates against them).- A person's omitted
clan_tagis the primary player's clan and nothing else: when that clan is not recorded the call isnot_recordednaming it, where it used to slide to an alt's recorded clan.
Additive; migration 0136 adds timeline_reader.