Files
open-wc/coordination/claims/M03-RND-M2-UNIQUE-REGISTRY-001.md
T

3.3 KiB

M03-RND-M2-UNIQUE-REGISTRY-001 — M2 unique placement registry

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-m2-unique-registry
  • Lease expires UTC: 2026-07-19
  • Integrator: M03 milestone integrator

Outcome

Extract cross-tile positive MDDF.uniqueId reservation ownership from the streamer into a scene-free M2UniquePlacementRegistry.

Non-goals

  • Move tile state, candidate requeue, group/build tasks or result queues.
  • Move MultiMesh/Node/Mesh/material creation, animation or resource loading.
  • Change unique-key format, first-owner semantics or unkeyed placement behavior.
  • Change placement transforms, detail radius, cache versions or quality profiles.
  • Add dependencies or mark the broad M2 service complete.

Paths

  • Exclusive: src/render/m2/m2_unique_placement_registry.gd, src/tools/verify_m2_unique_placement_registry.gd, docs/modules/m2-unique-placement-registry.md, this claim
  • Shared/hotspots: src/scenes/streaming/streaming_world_loader.gd, docs/modules/world-renderer.md, docs/modules/README.md, RENDER.md, targets/03-renderer-facade.md
  • Generated/ignored: .godot, native DLL, generated ADT resources, caches and proprietary renderer corpus

Contracts and data

  • Input: tile key and raw ADT M2 placement dictionaries
  • Reserve output: fresh filtered placements, owned unique keys and skipped keys
  • Release input/output: tile key plus claimed keys; only current owner releases
  • Positive IDs map to uid:<decimal>; zero/negative/missing IDs remain untracked
  • Registry is session-memory only and clears on renderer world reset
  • Queue/cache/schema/coordinate versions: unchanged

Dependencies

  • Requires: current master 57ae1b8
  • Blocks: broader M2 service extraction and dependency/performance acceptance
  • External state: none; tests use synthetic placement dictionaries

Verification

  • Commands: dedicated unkeyed/duplicate/cross-tile/release/clear/detached- diagnostic and bounded timing verifier; loader source boundary; M2 unique-id smoke plus facade/terrain/internal-access/manifest/shutdown/scheduler gates
  • Fidelity evidence: exact positive-ID key format and first-owner/retry behavior
  • Performance budget: dictionary membership over placement count; no Node, Resource, RID, task, file or persistent cache

Documentation deliverables

  • Inline registry API documentation
  • New module spec with inputs/outputs, data-flow, lifecycle, sequence, ownership, failure, recovery, performance and source map
  • World renderer/module registry/RENDER.md updates

Simplicity and naming

  • Important name: M2UniquePlacementRegistry
  • Simplest solution: one private key-to-owner dictionary and explicit operations
  • Rejected complexity: generic identity registry, signals, callbacks, Resources, locks or ownership graph
  • Unavoidable complexity: raw placement dictionaries remain at ADT adapter boundary
  • Measured optimization evidence: bounded synthetic reserve/release verifier

Status

  • State: claimed
  • Done: scope, key semantics and ownership published
  • Next: implement registry, migrate loader adapters, tests and docs
  • Blocked by:

Handoff

  • Commit:
  • Results:
  • Remaining risks:
  • Documentation updated: