Date: October 24, 2026. Engine 0.1.0. World darkwind, release lantern-house.1.
These decisions constrain the current test build without replacing the full architecture.
| Area | Implemented contract | Follow-up gate |
|---|---|---|
| Coordinates | Meters, Y up, initial forward −Z; radians; separate local place frames | Imported asset orientation fixtures |
| Content | Versioned typed JSON-compatible world data; authored stable interaction IDs; original primitive kit | Compiler IR, prefab graphs, immutable asset manifests, GLB/animation |
| Fingerprint | SHA-256 over engine version, compiler version and world serialization; numeric authoring precision 0.000001 | Canonical compiler output and migration corpus |
| Core | Generation-checked handles, validated components, deferred structural barriers, bounded independent change readers | Dependency scheduler and broader schema lifecycle |
| Time/physics | 30 Hz fixed simulation in a worker, max five catch-up ticks; Rapier 0.21.0; deterministic replay tested in the pinned Node runtime | Cross-platform numerical contract, slopes/platforms, complete controller snapshots |
| Rendering | Owned TypeScript/WGSL WebGPU main-thread renderer; four primitive batches; shadow, HDR forward PBR and postprocessing; bounded single GPU submission in flight | OffscreenCanvas worker capability probe, culling, resource graph, asset replacement and device-loss recovery |
| Authority | One elected browser owns shared interactions for the whole small room; local player motion is kinematic | Place ownership domains, dynamic shared bodies, trusted host |
| Coordinator | Signed 24-hour admission, exact origin/release/content negotiation, monotonic uint64 epoch/revision strings; six-second host lease | Hysteresis/eligibility policy and real shaped-network matrix |
| Recovery | Baseline on reconnect, host re-election, pending-intent resubmission, receipt cache plus durable per-session high-water mark | Binary deltas/cursors, compaction fault corpus, recovery-time measurements |
| Durability | Bounded full JSON checkpoint, synchronous fsync + atomic rename + directory fsync before ACK; storage failure closes the room | PostgreSQL journal/outbox and crash injection at every commit boundary |
| Inventory | Unique room item owned by a traveler session; 30-second reconnect grace then return to source | Accounts, transferable inventory and economy transactions |
| Travel | Prepare destination collision, replace place atomically; keep the same room socket | Streaming/preload and place-scoped interest filtering |
| Limits | Eight admitted players, sixteen connections, 64 pending intents, 4096 receipts, 128 admission sessions, 64 KiB ingress packet | Measured capacity; current browser evidence is two clients |
| Trust | Authored code and cooperative players are trusted; bounded protocol validation is not authoritative anti-cheat | Sandbox and trusted simulation service before public/adversarial use |
Full precision runtime geometry remains unchanged by fingerprint serialization; micro-unit rounding prevents platform-specific transcendental math from breaking release negotiation. This is not a claim of bitwise cross-browser physics determinism.
A main-thread renderer is the current explicit placement choice. The simulation worker and room heartbeat remain separate from UI focus. A suspended host loses its lease; an acknowledged successor revision cannot be replaced by a stale epoch. A GPU failure offers a clear reload path rather than claiming automatic device reconstruction.