status
The committed memory, live.
gamestruct serves its own verdicts at /status.json, generated from its committed battery on every web build. This page reads its own file and the family's, the way a fresh agent session would - no server, no numbers fresher than the commits. Refresh to re-read.
What you are looking at
Each number is a receipt from a CI leg, not a marketing claim.
◉ the selfcheck leg
The bridgeworks' own battery (lib/selfcheck.mjs): the same 17 checks gamestruct check runs - the tree, both lanes, both bindings, and the invariant that the SAME handle drives both.
⇄ the committed contract
labs/battery.json: the expected shape of that battery. A check that silently disappears reads RED, never a smaller green; an unlisted live check reads RED too.
✗ packs shipped
gamestruct ships no packstruct@1 packs yet, so its packs array is empty - honestly empty, not omitted. The slot wakes the day a pack lands.
The family, one dialect
Every member serves the same status contract: one schema, one fixed path, receipt-derived numbers only.
When it goes red
A red gate names its leg and its ledger. The dialect and the verdict rule live in the docs.