# Original allegiance definition IDs The original basic descriptor's `+8` is a uint64 definition ID. It is never converted to a public Allegiance enum or matched by its low32 bits alone. The single registered provider is original global `5F05E6C`, type getter `140EB70`, actual typed interface `51BBAB0`. Constructor `14018E0` installs it at component`+58` with main/secondary tables `51BB980`/`51BB9B0`; component`+60` has `51BBBA0`. Current ED5A mappings are explicitly established by paired constructors and slots in `artifacts/galaxy-query-research/allegiance-definitions/compatibility.json`: typed `51BBA70`, main `51BB940`, secondary `51BB970`, adjacent `51BBB60`. The actual original map consumer `3AC56A0` binds this provider at object`+B0`. It resolves each authored config`+98` key through provider`+20` (`140ED40`), then uses the returned definition's first u64 as the map's filter/colour key. The definition's `+8` shared-string is the original key. Provider`+48` (`14100E0`) returns the same string. The `+50` formatting path is unnecessary for categorisation and is never called by the adapter. The `+18` ID lookup `140F320` (current `140F240`) directly walks five existing u64 hash maps at interface`+80/+A8/+C8/+E8/+108`, followed by a legacy32-bit map at `+128`. Nodes contain key`+8`, weak-control`+10`, definition`+18`. The adapter ports only this existing-cache traversal. It requires a positive control-block strong count at `+C`, original definition validity byte`+18`, and the definition's **complete u64 ID equal to the requested ID**, including for the legacy32-bit map. It re-resolves the node and rechecks all source links, values and the copied string. No getter, loader, allocation, refcount mutation or network request occurs in this reader. Only the five authored keys are exported: `None`, `Federation`, `Empire`, `Alliance`, `Independent`. A different faction name from the shared service, a missing or expired definition, invalid layout, unknown key or absent provider remains unknown. These caches are not claimed as a complete definition index. There is one independently proved sentinel: original map constructor `3AC56A0` explicitly inserts u64Max under `None`, and original ID lookup rejects u64Max before accessing the maps. The adapter preserves this exact sentinel when the owning service is verified. It does not turn other unresolved IDs into `None`. `TryReadGalaxyAllegianceKey(context,registry,id,out key)` uses the existing owner-thread facts context and registry, and validates the player entity, system, thread and freshness. The optional `basicSystem.allegianceKey` wire field accompanies the untouched decimal-string `allegianceId`. Core treats null as unknown and uses only the validated key for filtering. Offline validation: - `research/galaxy_allegiance_compatibility.py` hash-pins both images and binds all actual constructor/typed slots. The 514-byte ID leaf has multiple early returns and no unwind entry; **its entire body** matches uniquely and is checked, including the final legacy-map traversal, not just its first return. - `artifacts/galaxy-allegiance-native/result.json`: new allegiance65535, existing Basic255 and Wire255 each pass eight own-allocation runs. Fixtures include IDs above 2^53, all five u64 maps, low32 collisions, expired refs, invalid definitions, malformed chains, exact type slots and unchanged bytes. - The existing mapping validator includes this sidecar without relaxing the current source hash or silently skipping unrelated missing source mappings. No game process was launched/accessed by this work. Live cache availability and matching-client behaviour remain unverified until a separate runtime test.