Parent
Spec 27: #162
What to build
The come-back-tomorrow layer across all arcade games. Each game's leaderboard gains a weekly-reset board (ISO-week periods) beside the all-time board, so newcomers can realistically top a chart. A daily challenge gives everyone the same server-derived seed for that date, with its own daily board. Playing on consecutive days grows a visible streak; beating your personal best triggers a celebration even when you're off the podium. Server-side plausibility validation keeps the boards credible: per-game score ceilings, minimum-duration-versus-score pace checks, and monotonic progress sanity — implausible submissions are rejected. (Full replay verification is explicitly out of scope.)
Leaderboard storage becomes period-aware in Postgres; streaks are per-user daily-play records; the daily seed is derived server-side from the date. All request/response shapes live in the shared contract package; endpoints follow the existing arcade-scores REST patterns including rate limits. HUD: the leaderboard panel shows all-time / weekly / daily tabs, the streak counter, and today's challenge.
Acceptance criteria
Blocked by
Parent
Spec 27: #162
What to build
The come-back-tomorrow layer across all arcade games. Each game's leaderboard gains a weekly-reset board (ISO-week periods) beside the all-time board, so newcomers can realistically top a chart. A daily challenge gives everyone the same server-derived seed for that date, with its own daily board. Playing on consecutive days grows a visible streak; beating your personal best triggers a celebration even when you're off the podium. Server-side plausibility validation keeps the boards credible: per-game score ceilings, minimum-duration-versus-score pace checks, and monotonic progress sanity — implausible submissions are rejected. (Full replay verification is explicitly out of scope.)
Leaderboard storage becomes period-aware in Postgres; streaks are per-user daily-play records; the daily seed is derived server-side from the date. All request/response shapes live in the shared contract package; endpoints follow the existing arcade-scores REST patterns including rate limits. HUD: the leaderboard panel shows all-time / weekly / daily tabs, the streak counter, and today's challenge.
Acceptance criteria
Blocked by