# M03-RND-M2-MESH-RESOURCE-FINALIZER-001

<!-- OPENWC_CLAIM:M03-RND-M2-MESH-RESOURCE-FINALIZER-001:sindo-main-codex:2026-07-20 -->

## Owner

- Agent ID: `sindo-main-codex`
- Target: M03 Renderer Facade and Safe Extraction
- Branch: `work/sindo-main-codex/m03-m2-mesh-resource-finalizer`
- Worktree: `C:\Users\sindo\open-wc-worktrees\m03-m2-mesh-resource-finalizer`

## Outcome

Move static M2 ResourceLoader status polling, terminal Resource/Mesh extraction,
runtime Mesh preparation, Mesh-cache adoption and missing outcome from the
loader into one dedicated finalization service.

## Non-goals

- Change static cache path selection or threaded request admission.
- Merge static and animated terminal services behind a generic callback layer.
- Own permits, MultiMesh materialization, prototype Nodes or SceneTree roots.
- Change material refresh version, rebuild rules, cache formats or visible output.

## Paths

- Exclusive: `src/render/m2/m2_mesh_resource_finalizer.gd`,
  `src/tools/verify_m2_mesh_resource_finalizer.gd`,
  `docs/modules/m2-mesh-resource-finalizer.md`, this claim
- Shared: loader, Mesh pipeline/cache/extractor/runtime-finalizer/raw-repository/
  prototype specs and verifiers, world renderer, registry, `RENDER.md`, M03 Evidence

## Contracts and data

- Pending requests are polled in existing Dictionary insertion order.
- Empty Resource paths are discarded and marked missing immediately.
- Only LOADED/FAILED statuses enter completion-order finalize FIFO.
- One permit pops exactly one terminal record, including skipped/cached records.
- Existing cached Mesh suppresses terminal Resource retrieval.
- Loaded Resource uses exact first-Mesh extraction and current refresh-version path.
- Raw M2 data loads only when the extracted Mesh is stale.
- Prepared Mesh is stored by existing replacement semantics; failures mark missing.

## Dependencies

- Requires: accepted Mesh pipeline/cache/extractor/runtime finalizer/raw repository
- Blocks: remaining loader-owned M2 materialization and orchestration cleanup

## Verification

- Synthetic polling/FIFO/skip/load/extract/refresh/store/missing/source/timing
  contracts; adjacent M2/renderer gates; full headless suite and checkpoint dry-run.

## Documentation deliverables

- Inline API docs; module API/I/O/ownership; data-flow/state/sequence/dependency
  diagrams; adjacent renderer docs and M03 Evidence.

## Status

- State: active
- Done: ownership/compatibility contract
- Next: implementation, verification and documentation
- Blocked by:

## Handoff

- Commit:
- Results:
- Remaining risks:
- Documentation updated:
