Original Power outer view and headquarters
This is offline original-body evidence. Native read adapters only inspect existing owner-bound published caches. Missing context/metadata remains unknown, and neither current public counters nor the ship's position substitutes for the original view context. Live current-client values remain unverified.
Headquarters
Current map AS OnPowerHeadquartersSelect reaches original callback 46C6440, main MapUI slot +3A0 and 3A6CF20. It reads the selected actual Power option, obtains its definition through the original service's +50 getter and passes definition+70 to Galaxy lookup/selection. This is the true system address, not a guessed name or table index. Native PowerOptions now includes nullable headquartersSystemAddress; original zero/invalid sentinel remains null. The expanded private fixture export mask is 65535.
Original Activities outer binding
Outer visualisation vtable 552E5C8 is distinct from Territory/filter vtable 552E520. Its original slots are +20 binding 3B3E5B0, +40 update 3AF6C40, +48 size 3B28160 (the base size at object+64), +50 colour 3B264B0, +60 opacity 3B2B3E0, +68 per-system geometry 3B27630, and +70 shared geometry 3B33690. Opacity must not be treated as point size.
3B3E5B0 reads the cached navigation centre through source ID 5F05DD4 and the original PowerService radius (+A0 getter, cache service+3E8). That centre can differ from the player's current system. The pure adapter preserves the real centre address/compact XYZ and rechecks the exact source generation, ready flags, pointers and radius before using the context.
3B42700 applies squared world distance <= original radius squared. For systems inside that bound, the original availability test 140AA80 requires generic metadata+30 to exist. If descriptor+1D0 is set, descriptor+160 states 33–38 are limited to 33 and 37; states 34/35/36/38 fail. Missing metadata is unknown in the adapter, rather than a fabricated negative fact. Navigation.GalaxyPowerOuter.cs ports this pure cache predicate, and private fixture masks Outer=65535 / OuterWire=255 pass.
The complete opt-in per-row wire is powerOuter:{visible:bool?,centreSystemAddress:string?,centrePosition:[x,y,z]?,radius:float?}. Unrequested is null; unavailable context has all four fields null. A known bound can remain populated when inside availability is unknown. Queue and Core integration are owned by the parent/renderer; the pure adapter does not issue a metadata request.
Geometry, with primitive boundaries preserved
The radius is used for actual extra geometry as well as the hard predicate; therefore it is incomplete to describe this as a predicate-only bound. 3B33690 forwards centre/radii/colours to a geometry callback when ready object+1B0 is set. With radius R>0 it calculates width=0.05*clamp(cameraDistance/R,1,6), inner=R-width, outer=R+width. Original colour constants are (1,0,0) and (0,0,1), with trailing (1,1,1,0).
A separately derived extent object+1C0 is passed to 3B064F0. When camera distance d exceeds extent r, this function builds a camera-facing orthonormal basis and uses projected contour radius 2.222222328186035*r*d/sqrt(d*d-r*r) (original float at 5537240, raw e4380e40). This is camera-facing silhouette geometry, not evidence for an arbitrary fixed Galactic XZ circle. The downstream callback/shader primitive and fill/material must be established independently. Renderer is continuing that downstream audit.
Per-system 3B27630 requires ready, a different centre/candidate, the same radius bound and original metadata availability, then calls 3AE7600. That routine only considers a pair with exactly one nonzero original extent, separation less than that extent, and appropriate unoccupied/same-controller state. It emits 64-byte staged links (endpoint A/B, controller colour/alpha and phase data). These are original influence links, not jump connections.
Territory 3B27690 emits 32-byte position/radius/colour records only for controlled systems with nonzero original colour alpha. Its original geometry mode 1 calls 3B28170 without distance scaling. Radius is config12C*baseSize*lerp(config11C,config120,c) with verified config values 11*.7*lerp(.75,2,c); alpha is original colour alpha times config130=.15. The actual recent counter is used, with the original minimum normalisation; counter>0 is not a general eligibility predicate. research/galaxy-original-power-activity-cache-evidence.md and the renderer's territory constants/body proof contain the full scoped counter and threshold details.
Compatibility
Old RVAs above belong to pinned 6891 image. research/galaxy_power_outer_compatibility.py, galaxy_thargoid_compatibility.py and renderer galaxy_power_territory_constants.py establish bounded/full-body code matches, actual vtable slots and paired operands against current ED5A. Prepare-GalaxyClientMapping.py now imports and rechecks these sidecars in the unified runtime-neutral ledger, including newly used navigation getters, account vtables/IDs and geometry flags. It does not relax the exact-hash native profile or approve live hooks.