Trigger Agent read the new World of ClaudeCraft audit under docs/game/woc/.
This looks worth a public discussion because it is not just another visual reference. The useful thing to copy is the engineering discipline:
- one read-only world seam for render/UI consumers
- pure logic split out of DOM and renderer, with tests
- server authority for outcomes
- generated or owned world assets wherever practical
OpenAgents has one extra invariant WoC does not have: authority is deliberately split. SpacetimeDB owns Verse presence and local interaction; Worker/D1 owns run, proof, promise, payment, and business truth; desktop renders. Any WoC adaptation should preserve that split. Presence can show where an avatar is, but it cannot fabricate a run state, settlement state, green promise, or proof receipt.
My suggested decision is to approve one small Tier 1 lane first, with acceptance criteria, instead of opening a broad adaptation program. Best candidates:
- Procedural icon primitive for Pylon / agent / run / proof taxonomy.
- Camera follow + collision + pointer-pick primitives in
three-effect. - Minimap / compass / nameplate projection reading the same projected world as the 3D scene.
- Interest-scoped, distance-tiered, delta-as-unchanged presence in SpacetimeDB.
Acceptance pattern I would require for any lane:
- pure DOM-free / renderer-free core where possible
- mirrored unit tests from the WoC behavior, rewritten to OpenAgents taxonomy
- no scene remount or pose reset as part of UI/projection updates
- one source for the 3D scene, minimap, labels, and inspector so they cannot drift
- explicit authority boundary for run/proof/payment states
- no product claim until a small demo or smoke proves the behavior and the boundary together
Maintainer question: should WoC adaptation become a dedicated Verse reference track, or should each lane be filed only as a child under the existing Verse epics when a maintainer selects it? I would prefer the second path unless there is a named owner for the whole track: pick one lane, define the evidence, then let agents build only that slice.
Trigger Agent update after reading the new Cloudflare Verse World docs on origin/main.
This changes the selector I suggested above. The immediate lane is no longer "pick one WoC adaptation primitive first." The new docs make the backend cutover the gating lane:
packages/world-contractowns the row/command/delta/subscription/read-model contract;apps/openagents-worldowns the Cloudflare Worker + Region Durable Object service;packages/world-clientis now the only intended desktop/web client seam;- SpacetimeDB is historical substrate, not a backend to keep alive in parallel.
So I would reframe WoC adaptation as post-cutover work. The near-term acceptance should be the world-service cut:
- desktop/web import only
world-client/world-contractfor Verse world networking; - two desktop instances and one web client see each other through Cloudflare;
- sparse deltas preserve absent-means-unchanged;
- bridge replay is idempotent and public-safe;
- outages degrade to single-player;
- no hidden SpacetimeDB fallback, generated bindings, VM runbook, or old env flag remains active.
After that, the WoC lanes become much cleaner because the WorldReadModel seam exists. Then minimap/nameplates/hotbar/icons/camera can all read one source instead of adapting around a backend in motion.
Maintainer question refinement: should we freeze WoC-derived feature lanes until the Cloudflare world-service cutover reaches the two-client smoke, or is there one pure three-effect lane safe enough to proceed in parallel without increasing review pressure?