Files
open-wc/coordination/claims/M03-RND-M2-RAW-MODEL-REPOSITORY-001.md
T
sindoring e4bb10cee7 coord(M03): claim raw M2 model repository
Work-Package: M03-RND-M2-RAW-MODEL-REPOSITORY-001
Agent: sindo-main-codex
Tests: coordination gate passed before claim
Fidelity: native-boundary extraction only; parser methods and paths unchanged
2026-07-17 15:44:15 +04:00

3.4 KiB

M03-RND-M2-RAW-MODEL-REPOSITORY-001 — raw M2 model repository

Ownership

  • Target: M03
  • Program: RND
  • Owner/Agent ID: sindo-main-codex
  • Branch: work/sindo-main-codex/m03-m2-raw-model-repository
  • Lease expires UTC: 2026-07-20
  • Integrator: M03 milestone integrator

Outcome

Extract the repeated FileAccess/ClassDB native M2Loader boundary for static and animated raw model Dictionaries from StreamingWorldLoader.

Non-goals

  • Cache raw data, Meshes, prototypes, missing paths or animation decisions.
  • Build Nodes/Meshes, refresh materials or choose .tscn/.glb caches.
  • Change static/animated parser methods, path resolution or fallback order.
  • Add dependencies, persistence, retries or visible behavior.

Paths

  • Exclusive: src/render/m2/m2_raw_model_repository.gd, src/tools/verify_m2_raw_model_repository.gd, docs/modules/m2-raw-model-repository.md, this claim
  • Shared/hotspots: src/scenes/streaming/streaming_world_loader.gd, M2 finalizer/extractor/cache/pipeline/material/animation/shutdown verifiers and module specs, 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

  • Static load calls native load_m2; animated load calls load_m2_animated.
  • Paths remain globalize_path(extracted_directory.path_join(normalized_path)).
  • Empty path, missing native class/file/instance/method, parse failure or non-Dictionary result returns an empty Dictionary without retained state.
  • Each successful request creates one native loader instance as before.

Dependencies

  • Requires: accepted runtime Mesh finalizer package on master 1d94eac
  • Blocks: M2 prototype/cache state extraction
  • External state: native M2Loader registration and local extracted files

Verification

  • Commands: dedicated invalid/missing/class/source/timing verifier; finalizer/ classifier/extractor/cache/pipeline/material/animation/shutdown/M2 build/facade/ internal-access/manifest, documentation and coordination gates
  • Fixtures: empty/missing normalized paths plus source contract; proprietary success corpus remains external
  • Fidelity evidence: exact native method names, path expression and three caller transitions
  • Performance budget: 10,000 rejected empty-path calls 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
  • Finalizer/extractor/cache/pipeline, world-renderer, registry and RENDER updates

Simplicity and naming

  • Important name introduced: M2RawModelRepository
  • Simplest solution: one stateless RefCounted with static and animated load methods
  • Rejected complexity: generic native repository, caching, dependency injection, retries, diagnostics framework or async wrapper
  • Unavoidable complexity: animated native method availability is a distinct guard
  • Measured optimization evidence: bounded rejected-input loop

Status

  • State: claimed
  • Done: refresh/static-prototype/native-animation M2Loader paths identified
  • Next: implement repository, migrate adapters, verify and document
  • Blocked by:

Handoff

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