Files
open-wc/coordination/claims/M03-RND-FACADE-ENVIRONMENT-001.md
T

4.0 KiB

M03-RND-FACADE-ENVIRONMENT-001 — Renderer environment snapshot boundary

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-facade-environment
  • Lease expires UTC: 2026-07-18
  • Integrator: M03 milestone integrator

Outcome

Add an immutable world-environment snapshot accepted by WorldRenderFacade, delegate it to the existing DBC sky controller, and migrate deterministic render checkpoint time setup away from direct sky-controller property mutation.

Non-goals

  • Change Light/Area/Skybox DBC selection, interpolation, fog, sun or shader rules.
  • Add weather, indoor lighting, new clock semantics or build-12340 parity claims.
  • Extract the sky service or move its Environment/Node/RID ownership.
  • Change runtime scene defaults, cache formats, streaming behavior or target status.

Paths

  • Exclusive: src/render/environment/world_environment_snapshot.gd, src/tools/verify_world_environment_snapshot.gd, this claim
  • Shared/hotspots: src/render/world_render_facade.gd, src/scenes/sky/wow_sky_controller.gd, both runtime streaming scenes, src/tools/capture_render_checkpoints.gd, src/tools/verify_world_render_facade.gd, docs/modules/world-renderer.md, docs/modules/README.md, RENDER.md, targets/03-renderer-facade.md
  • Generated/ignored: .godot, native DLL, generated resources, caches and proprietary renderer corpus

Contracts and data

  • Public API: immutable WorldEnvironmentSnapshot and WorldRenderFacade.apply_environment_snapshot
  • Snapshot input: finite time-of-day hours normalized into one 24-hour day
  • Adapter: explicit world_environment_controller_path; facade/controller retain no ownership of caller snapshot
  • Schema/cache/coordinate contracts and runtime defaults: unchanged
  • Consumer: deterministic renderer checkpoint capture; future world-state adapter

Dependencies

  • Requires: integrated M03 facade/ground-query master cb103e1
  • Blocks: completion of the facade environment checklist slice and later sky extraction
  • External state: none for contract tests; visual comparison still needs proprietary corpus

Verification

  • Commands: dedicated cold snapshot contract, facade delegation/wiring regression, capture source-boundary regression, renderer manifest/dry-run and repository gates
  • Fixtures: normalization, non-finite rejection, missing/wrong controller, exact snapshot delegation and existing runtime scene wiring
  • Fidelity evidence: preserve existing fixed-time application and all DBC-derived visual logic; seven checkpoint plans remain valid
  • Performance budget: one immutable value allocation per environment update and constant-time main-thread delegation

Documentation deliverables

  • Inline public API docs: snapshot, facade adapter and sky-controller application
  • Module specification: update existing world-renderer specification
  • Data-flow diagram: snapshot producer through facade into DBC sky controller
  • Sequence/state/dependency diagrams: application/failure path and ownership notes
  • Source map/status updates: world-renderer module, module registry if needed, RENDER.md

Simplicity and naming

  • Important names introduced: WorldEnvironmentSnapshot, apply_environment_snapshot
  • Simplest considered solution: one immutable time snapshot over the existing sky implementation
  • Rejected complexity/abstractions: generic weather graph, duplicated lighting DTO, event bus, service container or alternate Environment owner
  • Unavoidable complexity and justification: facade resolves a separate scene-owned sky controller because the streamer does not own outdoor environment rendering
  • Measured optimization evidence: not applicable; bounded constant-time adapter

Status

  • State: claimed
  • Done: contract scope and ownership published
  • Next: implement value, facade/controller adapter, migration, tests and docs
  • Blocked by:

Handoff

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