JSON Schema for the game-state feed #49
Labels
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#31 Feed: apply the ADR 0019 message contract
mintopia/blur
#32 Feed: dev-only debug state for scripts
mintopia/blur
#33 Test-race scenarios and race bot in scripts/
mintopia/blur
#34 Spike: game race ID shared across LAN instances
mintopia/blur
#35 Feed: use and collect events, per-racer totals
mintopia/blur
#36 Decoy drop and decoy hit events
mintopia/blur
#37 Bribe's starting powerup missing from the feed
mintopia/blur
#38 Game award stats and awards in the feed
mintopia/blur
Reference
mintopia/blur#49
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What to build
Clients can validate every game-state feed message against a published JSON Schema that follows the ADR 0019 message contract. Kept hand-written docs stay the primary explanation; the schema is linked from them.
Acceptance criteria
examples/live-timing/sample-race.jsonlagainst the schemaDecided in the docs-site grilling (2026-10-20).
Blocked on #31–#38: the schema must match the final ADR 0019 contract,
sample-race.jsonlis migrated in #31, and the use/collect/decoy/award event payloads land in #35–#38. Earlier escalation (missing blocked-by) resolved.Added
examples/live-timing/feed.schema.json(draft 2020-12; served at /live-timing/feed.schema.json): snapshot, change (typed known keys, roster/standings/race_result), events hit/use/collect/decoy_drop/decoy_hit; unknown keys/events allowed.tests/feed_schema_test.py(ctestfeed_schema, needs python jsonschema) validates all 1368 sample-race.jsonl messages, example events, and negative cases. Linked from docs/state-websocket.md and docs/testing.md. Note: sample has no events and nototals, so those are covered by inline examples;totalsoptional in schema. Docs-site build not run (no node_modules).Completed and merged by Harmonic (task 41).