Ranked archive
Competitive snapshots are treated like a journal, not a one-off fetch.
The leaderboard surface pulls official ranked data by Act, stores periodic snapshots, and prepares the UI for playback and movement over time once live data lands.
Query recipe
Fetch the official leaderboard by passing an Act ID into the API route.
/api/leaderboard?actId=<act-id>
Each response can be persisted as time-stamped rows for later comparison instead of being discarded after render.
Storage model
Dimension
Act ID
Metric
RR and wins
Time axis
captured_at
Endpoint
val/ranked/v1/leaderboards/by-act/{actId}