Indexer: Arena v2 schema — podium epochs, CRED, XP, WarBow history

Context

Indexer schema and API for TimeArena multi-epoch podiums. Parent epic: #238 (closed).

Relevant files

  • indexer/migrations/
  • indexer/src/decoder.rs, indexer/src/api.rs
  • docs/indexer/design.md

Acceptance criteria

  • Tables: idx_arena_buy, idx_arena_podium_epoch, idx_arena_podium_snapshot, idx_play_cred_claim, idx_player_xp, idx_warbow_epoch_score
  • Replace GET /v1/timecurve/* with GET /v1/arena/* (timers, podiums, epochs)
  • GET /v1/arena/podiums: live predictions per category per epoch
  • GET /v1/arena/timers: all five deadlines (Last Buy + 4 podiums)
  • Ingest all TimeArena events; drop TimeCurve-only tables in fresh DB
  • WarBow: store full score history per WarBow epoch for admin finalize UI

Verification checklist

  • integration_stage2.rs coverage for new events
  • SCHEMA_VERSION bump + frontend indexerApi.ts types