Prompt file imported from akspa0/parp-tools (
.codex/prompts/wow-viewer-m2-runtime/01-md20-and-skin-runtime-foundation.md). Copyright stays with the author.
Implement or plan the first shared M2-owned runtime seam in wow-viewer: canonical .m2 identity plus exact numbered skin-profile ownership.
Read First
gillijimproject_refactor/memory-bank/activeContext.mdgillijimproject_refactor/memory-bank/progress.mdwow-viewer/docs/architecture/m2-native-client-research-2026-03-31.mdgillijimproject_refactor/plans/wow_viewer_m2_runtime_plan_2026-03-31.mdgillijimproject_refactor/src/MdxViewer/ViewerApp.csgillijimproject_refactor/src/MdxViewer/Rendering/WarcraftNetM2Adapter.cswow-viewer/README.mdAGENTS.md
Goal
Create the first wow-viewer-owned M2 parser/runtime seam for:
- canonical
.m2identity - strict
MD20validation - exact numbered
%02d.skinownership - explicit choose/load/init skin-profile staging
- active skin-profile result contracts that later renderer slices can consume
Current Concrete Problem
- native evidence says the client canonicalizes model-family paths to
.m2 - skin ownership is exact numbered
%02d.skin, not a fuzzy sidecar search as the design truth - skin-profile load/init materially changes renderable state and rebuilds instances
- wow-viewer still has no M2-owned seam for any of that; the current practical ownership is trapped in compatibility code and ad hoc adapter paths
Non-Negotiable Constraints
- Do not turn this slice into the full renderer rewrite.
- Do not let best-effort fallback skin search become the authoritative wow-viewer contract.
- Keep
MdxVieweras a reference/compatibility input, not the design owner. - Keep strict parse failures and proof boundaries explicit.
- Do not claim active-viewer runtime parity from a library parse or build pass.
What The Work Must Produce
- the exact wow-viewer contracts for model identity, skin selection, and active skin-profile staging
- the exact files that should own parser, I/O, and runtime state in
wow-viewer - the narrowest real-asset proof that the shared seam is real
- any temporary compatibility-only fallback that must remain clearly labeled as non-authoritative
- the follow-on hook for section/material ownership in slice 02
Deliverables
Return all items:
- the exact foundation seam to implement
- why it is the first M2 slice
- exact files to change
- exact validation to run
- what should stay out of scope
- which continuity files must be updated afterward
First Output
Start with:
- the current M2 boundary you are assuming now
- the single first foundation seam you would land
- the narrowest proof that would make that seam real
- what you are explicitly not claiming yet
