# M01-FND-COORD-TILE-AXIS-002 — ADT filename axis correction ## Ownership - Target: M01 - Program: FND - Owner/Agent ID: sindo-main-codex - Branch: `work/sindo-main-codex/m01-coordinate-tile-axis-fix` - Lease expires UTC: 2026-07-15 - Integrator: M01 milestone integrator ## Outcome Correct the additive coordinate contract so `AdtTileCoordinate(tile_x, tile_y)` matches actual `Map_tileX_tileY.adt` filenames and MCNK `indexX/indexY` axes. ## Non-goals - Migrating renderer/native consumers. - Changing canonical, server, Godot or ADT placement position arithmetic. - Adding server-spawn fixtures or `StreamingFocus`. - Committing proprietary ADT bytes. ## Paths - Exclusive: `src/domain/coordinates/coordinate_mapper.gd`, `src/domain/coordinates/adt_chunk_coordinate.gd`, `src/tools/verify_coordinate_mapper.gd` - Shared/hotspots: `docs/adr/0001-canonical-world-coordinates.md`, `docs/modules/coordinate-mapping.md`, this claim - Generated/ignored: local extracted ADT and Godot import metadata ## Contracts and data - Public API/events: method names unchanged; corrected tile/chunk axis semantics - Schema/format version: coordinate contract version increments from 1 to 2 - Migration/compatibility: no released consumer exists; contract was merged but not yet consumed, so correction precedes consumer rollout - Consumers: future renderer, network, gameplay and server-data adapters ## Dependencies - Requires: merged `M01-FND-COORDS-001` at `1c0dfc7` - Blocks: coordinate golden fixtures and all coordinate consumers - External state: private `Azeroth_31_49.adt` used read-only for evidence ## Verification - Commands: coordinate mapper probe, M00 calibration, manifest, documentation and coordination gates - Fixtures: build 12340 Elwynn point must resolve to `Azeroth_31_49.adt`; MCNK `(0,0)` and `(15,15)` establish chunk-axis direction - Fidelity evidence: local ADT SHA-256 `18185B5FAC9566D9C57A9C19ABD75F108370D1795639B6077167C0EFD3672FAE`; OpenRealm independently indexes filename X from world Y and filename Y from world X - Performance budget: unchanged constant-time scalar arithmetic ## Documentation deliverables - Inline public API docs: corrected tile/chunk direction comments - Module specification: contract version, formulas, capability evidence and risk - Data-flow diagram: corrected filename/chunk axes - ADR: corrected decision and evidence - Sequence/state diagrams: not applicable; pure synchronous mapper ## Simplicity and naming - Important names introduced: none - Simplest considered solution: swap the two filename formulas and corresponding local/chunk ownership calculations - Rejected complexity/abstractions: compatibility flag for a contract with no consumers - Unavoidable complexity and justification: ADT filename axes differ from client X/Y order - Measured optimization evidence: not applicable ## Status - State: ready-for-review - Done: raw-corpus diagnosis, filename/local/chunk axis correction, contract version 2 documentation and regression fixtures - Next: integrator review and merge before coordinate consumer work - Blocked by: ## Handoff - Commit: `a7072e3` - Branch: `work/sindo-main-codex/m01-coordinate-tile-axis-fix` - Outcome: `tile_x/chunk_x` now grow east from canonical Y and `tile_y/chunk_y` grow south from canonical X; public method names unchanged - Contract/schema: coordinate contract version 2; no persisted format, cache or migration - Verification: coordinate mapper PASS (5 build-12340 points, 8 boundaries, 2 recorded raw MCNK origins, 5 yaw cases); M00 calibration PASS with maximum error `0.000015`; renderer manifest, coordination, documentation, dependency and whitespace checks passed - Fidelity: private `Azeroth_31_49.adt` hash and raw MCNK origins recorded in ADR 0001; OpenRealm independently uses the same filename-axis ordering - Rebuild: none; private/generated prerequisites remain outside Git - Remaining risks: server spawn fixture, native placement conversion and MDDF/MODF Euler semantics remain subsequent M01 packages - Recommended merge order: merge this correction before golden fixture or consumer migration - Documentation: ADR 0001 and coordinate-mapping module data flow, contract version, capability evidence and known risks updated