# Phase 0 GC3–GC5 shared contract evidence **Result:** Passed for Phase 0 shared resolution, clock/PRNG, and ownership/failure contracts **Scope:** Deterministic contract models and validation; not production runtime, real-time audio integration, or soak acceptance **Format specification:** Revision 0.3 ## Contract reconciliation The GC2 draft schema used `from`, `to`, and `transform` for ordinary bindings, while PRD section 32 already defined `source`, `target`, `scale`, `offset`, and `clamp`. No production runtime exists and no released exhibit depends on the draft vocabulary. Revision 0.3 adopts the PRD fields, sets `smoothing` default to `0ms`, rejects the draft names as unknown fields, and migrates the conformance fixtures. The complete GC2 matrix still passes. ## GC3 — resolution semantics The normative contract now defines: - shared target capabilities and safety clamps; - same-tick topological dependency evaluation; - exact binding transformation, conditional disabling, and one-pole smoothing; - override scope, priority, activation sequence, runtime IDs, and masking; - easing equations, attack/release behavior, interruption, and dynamic release destinations; - diagnostics for conflicts, cycles, unsupported targets, invalid transitions, and bounds. The executable model and trace fixture verify direct bus overrides, parameter overrides feeding downstream bindings, preserved user edits, priority/scope competition, masked automation, post-override modulation, safety clamping, smoothing, interruption, conflicts, cycles, unsupported targets, and rejected draft aliases. ## GC4 — time and reproducibility The normative contract fixes a `1/60s` logical step, eight ticks per browser turn, a `250ms` accepted wall-time limit, a `100ms` audio horizon, composable pause reasons, and unlock/resume alignment. Earlier one-shots are skipped at unlock; still-owned continuous audio aligns to current logical state with a `20ms` ramp. Seed derivation is fixed to FNV-1a-32 plus SplitMix32 state expansion and `xoshiro128**`. Known vectors lock the implementation. Tests compare 60 Hz and 120 Hz render drivers, bound a one-second stall, preserve explicit pause across visibility restoration, verify unlock scheduling decisions, isolate manual sampling, and use a deterministic audio-analysis fixture. The audio unlock test is a scheduling-decision model. It does not claim that future Web Audio nodes already implement the mapping or anti-click ramp. The GC1 browser evidence separately establishes user-unlocked audio and AudioContext suspend/resume in the direct-file environment. Combined synchronization must be repeated during audio integration. ## GC5 — ownership and failure The normative contract fixes inherited scenario ownership, termination hook selection and allowed actions, persistent-state behavior, a five-logical-second cleanup bound, condition rearming, one deferred request per definition, five-minute default expiry, deterministic deferred ordering, a 1024-unit ordinary dispatch budget, and a separate 256-action termination-hook limit. The lifecycle model verifies nested ownership, bounded override release, persistent state after critical failure, startup and termination-hook failures, condition rearming, deferred deduplication/expiry/eligibility ordering, bounded feedback, cleanup outside the ordinary budget, and 30 repeated completion/cancellation/failure cycles returning resource counts to zero. ## Verification performed ```text node --test test/gc2-runner.test.mjs test/gc3-resolution.test.mjs test/gc4-time-random.test.mjs test/gc5-lifecycle.test.mjs prototypes/phase0/audio-probe.test.mjs ``` Result: **27 tests passed, 0 failed**. Artifacts: - `tools/gc3-resolution-model.mjs` - `test/fixtures/gc3/resolution-traces.json` - `test/gc3-resolution.test.mjs` - `tools/gc4-time-model.mjs` - `test/fixtures/gc4/deterministic-signals.json` - `test/gc4-time-random.test.mjs` - `tools/gc5-lifecycle-model.mjs` - `test/gc5-lifecycle.test.mjs` These are Phase 0 contract oracles. Production implementations must pass equivalent traces with their actual resolver, scheduler, Web Audio nodes, event/scenario director, and resource counters.