docs(spec): tidy remaining 'gated on #67' phrasing

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RF5L4HtbcykTfY9YUYGds3
This commit is contained in:
2026-06-21 13:05:30 +02:00
parent 4508a6ecbb
commit d81e2691cd
@@ -118,7 +118,7 @@ sites).
entry point is the "Total purchased" count link. The `StatsData` key may remain entry point is the "Total purchased" count link. The `StatsData` key may remain
(harmless) or be removed if no other consumer exists. (harmless) or be removed if no other consumer exists.
### D. Tier 2 — gated on prereq #67 ### D. Tier 2 — finished/dropped/unfinished/backlog (uses #67)
With #67 merged, `PlayEventFilter.ended` is a `DateCriterion` (bare `DateField` With #67 merged, `PlayEventFilter.ended` is a `DateCriterion` (bare `DateField`
lookup), so "finished in year" is expressible and the chain lookup), so "finished in year" is expressible and the chain
@@ -196,8 +196,8 @@ exactly is reported (not silently shipped with a wrong number).
`parse_*_filter`. Year-scoped vs all-time variants both covered. `parse_*_filter`. Year-scoped vs all-time variants both covered.
- **Exact-match** (db): seed games/sessions/purchases/playevents spanning the year - **Exact-match** (db): seed games/sessions/purchases/playevents spanning the year
boundary and other years; assert each linked filter's count equals the boundary and other years; assert each linked filter's count equals the
`compute_stats(year)` / `compute_stats(None)` value for that category (Tier 1 `compute_stats(year)` / `compute_stats(None)` value for that category (both
now; Tier 2 after #67). tiers, since #67 is merged).
- **Rendering** (db): stats page renders; capped lists show ≤5 rows + a "View all" - **Rendering** (db): stats page renders; capped lists show ≤5 rows + a "View all"
link; the "All purchases" list is gone; smoke-test that the generated link URLs link; the "All purchases" list is gone; smoke-test that the generated link URLs
return 200. return 200.