# M01-QAR-COORD-FIXTURES-001 — Coordinate golden fixtures

<!-- OPENWC_CLAIM:M01-QAR-COORD-FIXTURES-001:sindo-main-codex:2026-07-15 -->
<!-- OPENWC_INTEGRATION:ACCEPTED:M01-QAR-COORD-FIXTURES-001:c8e99f2 -->

## Ownership

- Target: M01
- Program: QAR
- Owner/Agent ID: sindo-main-codex
- Branch: `work/sindo-main-codex/m01-coordinate-fixtures`
- Lease expires UTC: 2026-07-15
- Integrator: M01 milestone integrator

## Outcome

Add a versioned, non-proprietary fixture and headless validator joining one
pinned AzerothCore player spawn, raw ADT/MCNK metadata and the five M00
original-client coordinate observations through coordinate contract version 2.

## Non-goals

- Committing ADT files, SQL dumps or original-client screenshots.
- Claiming TrinityCore spawn equivalence without a pinned populated TDB source.
- Migrating renderer/native consumers or rendering a live server spawn.
- Changing coordinate formulas, IDs or `StreamingFocus`.

## Paths

- Exclusive: `src/tests/fixtures/coordinate_golden_points.json`,
  `src/tools/verify_coordinate_golden_fixtures.gd`
- Shared/hotspots: `docs/modules/coordinate-mapping.md`, this claim
- Generated/ignored: extracted ADT data, server database downloads and Godot metadata

## Contracts and data

- Public API/events: no new production API; fixture schema version 1
- Coordinate contract: version 2, unchanged
- Migration/compatibility: additive test data; fixture consumers reject unknown schema versions
- Consumers: M01 coordinate mapper, future native/renderer/server adapter migrations

## Dependencies

- Requires: merged coordinate contract version 2 at `b55bfca`
- Blocks: coordinate consumer migration and golden server-spawn renderer integration
- External state: source evidence reduced to pinned revision, numeric rows and SHA-256 hashes

## Verification

- Commands: fixture validator, coordinate mapper probe, M00 calibration,
  manifest, coordination and documentation gates
- Fixtures: AzerothCore Human Warrior start; raw `Azeroth_32_48.adt` MCNK
  `(3,12)`; five build 12340 camera points
- Fidelity evidence: exact source provenance and mapper outputs with bounded tolerances
- Performance budget: negligible headless JSON and scalar arithmetic

## Documentation deliverables

- Inline public API docs: fixture-validator header and field validation functions
- Module specification: fixture schema, provenance, verification and source map
- Data-flow diagram: server/raw/client fixtures into mapper assertions
- State/sequence/dependency diagrams: unchanged; synchronous stateless validation

## Simplicity and naming

- Important names introduced: `coordinate_golden_points`,
  `verify_coordinate_golden_fixtures`
- Simplest considered solution: one JSON fixture and one existing-style headless script
- Rejected complexity/abstractions: test framework dependency, SQL parser, ADT bytes in Git
- Unavoidable complexity and justification: three independent source categories need explicit provenance
- Measured optimization evidence: not applicable

## Status

- State: ready-for-review
- Done: pinned source research, schema 1 fixture, headless validator, module
  documentation and all package gates
- Next: integrator review and merge before coordinate consumer migration
- Blocked by:

## Handoff

- Commit: `ce4f7ec`
- Branch: `work/sindo-main-codex/m01-coordinate-fixtures`
- Outcome: one versioned fixture now joins a pinned AzerothCore Human Warrior
  spawn, private raw MCNK metadata and five original-client build 12340 points
  through coordinate contract version 2
- Contract/schema: additive test fixture schema 1; production coordinate API and
  contract version 2 are unchanged; proprietary bytes remain outside Git
- Verification: golden fixture PASS (`1` server spawn, `1` raw ADT chunk, `5`
  original-client points); CoordinateMapper PASS (`5` golden points, `8` tile
  boundaries, `2` raw MCNK cases, `5` yaw cases); M00 calibration PASS with
  maximum error `0.000015`; renderer manifest PASS (`7` checkpoints); coordination,
  documentation, dependency and whitespace checks passed
- Fidelity: AzerothCore source pinned at revision
  `68fcf0098b16388093989627f37be530fc91f07d`; private
  `Azeroth_32_48.adt` SHA-256
  `D66E27FD82B461AE38B78562952AED428E619777A3F3E35DD8FF97444644770A`;
  server and raw data independently resolve tile `(32,48)` and chunk `(3,12)`
- Rebuild: no proprietary input is required to rerun the committed fixture;
  local ignored renderer resources are still required by the inherited M00
  manifest probe
- Remaining risks: TrinityCore equivalence needs a pinned populated TDB snapshot;
  live server adapter, renderer integration and MDDF/MODF Euler semantics remain
  subsequent M01 work
- Recommended merge order: after coordinate contract version 2 (`b55bfca`) and
  before live coordinate consumer migration
- Documentation: coordinate-mapping module inputs/outputs, persistence, data-flow
  diagram, verification, capability matrix, risks and source map updated
