dd412e6d0d
Work-Package: M01-QAR-INTEGRATOR-CLOSEOUT-001 Agent: sindo-main-codex Tests: all M01 domain gates, unified renderer dry-run, coordination and documentation gates Fidelity: five build-12340 points, raw ADT and mapped AzerothCore spawn evidence; no 1:1 claim
105 lines
4.3 KiB
Markdown
105 lines
4.3 KiB
Markdown
# M01-FND-COORD-TILE-AXIS-002 — ADT filename axis correction
|
|
|
|
<!-- OPENWC_CLAIM:M01-FND-COORD-TILE-AXIS-002:sindo-main-codex:2026-07-15 -->
|
|
<!-- OPENWC_INTEGRATION:ACCEPTED:M01-FND-COORD-TILE-AXIS-002:c8e99f2 -->
|
|
|
|
## 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
|