Replay ordered tower events for a single (firm, game) pair.
WHAT IT DOES: GETs /v1/replay/firm/:firm/game/:game. Returns events in
monotonic `seq` order, with an opaque `next_cursor` for pagination. Read
only, no auth required.
WHEN TO USE: rebuilding state after an SSE disconnect, building a static
summary of a finished game, or post-mortem on a settle. Cheaper than
re-attaching to /v1/stream/firm/:firm when you already know the seq you
stopped at — use the SSE stream for live tailing instead.
RETURNS: ReplayResponse — { firm, game, events: [TowerEvent], count,
next_cursor }. Each TowerEvent has { seq, ts (unix ms), type, firm,
game, agent_wallet, data }.
PAGINATION: pass the previous response's `next_cursor` as `cursor`. When
`next_cursor` is null you've reached head of stream.
RELATED: tower_floors (current snapshot), firm_ingest (publish events).
Connector