The parallel track: the kit lives once.
Where does data stop and code start? That boundary is now a recorded decision — data is what a tool can check without running the scene, and every place checking ends is a named, typed hole — and its first consequence has landed: the shared kit inside every film is stamped from one canonical store instead of being held byte-identical across nine files by discipline. Edit the store, regenerate every film; a drifted copy fails loudly against the source instead of outvoting it. And the static validator now reads that same store: the checker and the renderer run the same code, with a standing control that drives both against the review's divergence corpus — a new case becomes an arm, not a memory. Where agreement is unachievable (an input the checker cannot read), the arm pins honesty instead: the checker must declare its stand-in rather than go quietly green. And the two open bags — the look and the config — now police their own keys: a declared key that nothing reads draws a warning naming the nearest real one, with the vocabulary derived from the kit's actual reads rather than kept as a list. Its first run found a dead key in a shipped template. And a subject's framed extent now derives from construction instead of being declared beside it — a hand adjustment rides as a named term, the checker warns on a bare number, and its first run caught the base template framing its own demo a quarter too small. Next on this track: making the promotion counting cheap enough that its triggers actually fire.