# M03-RND-M2-MESH-LOAD-PIPELINE-001 — M2 mesh load pipeline state ## Ownership - Target: M03 - Program: RND - Owner/Agent ID: sindo-main-codex - Branch: `work/sindo-main-codex/m03-m2-mesh-load-pipeline` - Lease expires UTC: 2026-07-20 - Integrator: M03 milestone integrator ## Outcome Extract static M2 threaded ResourceLoader request records and their terminal finalize FIFO from `StreamingWorldLoader`, preserving request order, status transition, metrics and reset/shutdown behavior. ## Non-goals - Call ResourceLoader or choose `.tscn`/`.glb` cache paths. - Own M2 Mesh, scene, missing or material-refresh caches. - Extract Mesh from Resources or rebuild/adopt runtime Meshes. - Consume `M2_MESH_FINALIZE` permits. - Change cache formats, animation loading or visible M2 behavior. ## Paths - Exclusive: `src/render/m2/m2_mesh_load_pipeline_state.gd`, `src/tools/verify_m2_mesh_load_pipeline_state.gd`, `docs/modules/m2-mesh-load-pipeline-state.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 M2 resources, caches and proprietary renderer corpus ## Contracts and data - One normalized path owns at most one pending request. - Pending records preserve Dictionary insertion order for polling snapshots. - Terminal completion removes the request and appends its record/status to FIFO. - Finalize pop remains oldest-first; duplicate/unknown transitions are rejected. - Total work count remains pending plus finalize records. - Clear drops bookkeeping only; loader drains ResourceLoader requests first. ## Dependencies - Requires: accepted classifier package on current master `8ec13d6` - Blocks: further M2 Mesh cache/finalization service extraction - External state: none; verification uses synthetic paths and opaque statuses ## Verification - Commands: dedicated validation/order/transition/FIFO/clear/source/timing verifier; M2 classifier/builder/grouper/transform/registry, materials, shutdown, facade, internal-access, manifest, documentation and coordination gates - Fixtures: synthetic normalized paths, resource paths and integer terminal statuses - Fidelity evidence: exact request/finalize transitions and metric/reset sites preserved - Performance budget: 100 cycles over 256 request/completion/pop records under 1 second ## Documentation deliverables - Inline public API docs - Module specification with inputs/outputs, ownership and source map - Data-flow, lifecycle/state, sequence and dependency diagrams - World-renderer, module registry and RENDER status updates ## Simplicity and naming - Important names introduced: `M2MeshLoadPipelineState` - Simplest considered solution: one RefCounted with request map and finalize FIFO - Rejected complexity/abstractions: generic ResourceLoader queue, signals, callbacks, Mesh cache ownership or animation/static pipeline merger - Unavoidable complexity and justification: polling and budgeted finalization are distinct lifecycle stages across frames - Measured optimization evidence: bounded synthetic transition loop ## Status - State: claimed - Done: all request/finalize/metric/wait/reset sites identified - Next: implement state holder, migrate loader adapters, verify and document - Blocked by: ## Handoff - Commit: - Results: - Remaining risks: - Documentation updated: