coord(M03): claim facade environment snapshot
This commit is contained in:
@@ -0,0 +1,96 @@
|
|||||||
|
# M03-RND-FACADE-ENVIRONMENT-001 — Renderer environment snapshot boundary
|
||||||
|
|
||||||
|
<!-- OPENWC_CLAIM:M03-RND-FACADE-ENVIRONMENT-001:sindo-main-codex:2026-07-18 -->
|
||||||
|
|
||||||
|
## 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:
|
||||||
Reference in New Issue
Block a user