Refresh Unity parity state checks

This commit is contained in:
Meta Vens 2026-06-28 05:51:22 +01:00
commit 085c69fe2e

View file

@ -40,11 +40,18 @@ Assert-NotContains $mainMenu "ActionGameManager.Instance.ShowInputScreenFromMenu
Assert-NotContains $mainMenu "ActionGameManager.Instance.CanShowInputScreenFromMenu" "MainMenu must not query runtime input screen through ActionGameManager.Instance."
$mapRenderer = Read-Text "Assets\Scripts\UI\Menu\MapRenderer.cs"
Assert-Contains $mapRenderer "ObjectsViewportAsync" "MapRenderer must exercise the split objects viewport facade."
Assert-Contains $mapRenderer "GravityViewportAsync" "MapRenderer must exercise the split gravity viewport facade."
Assert-Contains $mapRenderer "PlayerSettingsAsync" "MapRenderer must read player settings through AetheriaClient."
Assert-Contains $mapRenderer ".Aetheria()" "MapRenderer must enter map viewport state through the semantic Aetheria facade."
Assert-Contains $mapRenderer ".Viewports" "MapRenderer must exercise the managed viewport document facade."
Assert-Contains $mapRenderer ".Objects(viewport)" "MapRenderer must read the split objects viewport document handle."
Assert-Contains $mapRenderer ".RenderSplats(viewport)" "MapRenderer must read the split render-splats viewport document handle."
Assert-Contains $mapRenderer ".Settings" "MapRenderer must read player settings through managed typed state."
Assert-Contains $mapRenderer ".Player" "MapRenderer must read player settings through the player settings document handle."
Assert-Contains $mapRenderer ".Latest()" "MapRenderer must read a typed player settings snapshot."
Assert-NotContains $mapRenderer "public ActionGameManager" "MapRenderer must not regain an ActionGameManager serialized dependency."
Assert-NotContains $mapRenderer "LatestAuthoritativeRunFrameAsync" "MapRenderer must not regress to whole-frame reads for map viewport data."
Assert-NotContains $mapRenderer "ObjectsViewportAsync" "MapRenderer must not use the transitional objects viewport helper."
Assert-NotContains $mapRenderer "GravityViewportAsync" "MapRenderer must not use the transitional gravity viewport helper."
Assert-NotContains $mapRenderer "PlayerSettingsAsync" "MapRenderer must not use the transitional player settings helper."
Assert-NotContains $mapRenderer "ActionGameManager.RuntimePlayerSettings" "MapRenderer must not read manager-global player settings."
$sectorRenderer = Read-Text "Assets\Scripts\UI\Menu\SectorRenderer.cs"
@ -56,9 +63,14 @@ Assert-Contains $sectorRenderer ".SectorMap" "SectorRenderer zone details must r
Assert-Contains $sectorRenderer ".LatestAsync()" "SectorRenderer must read typed state snapshots."
Assert-NotContains $sectorRenderer ".CurrentZoneAsync()" "SectorRenderer must not use the transitional current-zone helper."
Assert-NotContains $sectorRenderer ".SectorMapAsync()" "SectorRenderer must not use the transitional sector-map helper."
Assert-Contains $sectorRenderer "ZoneDetailsAsync" "SectorRenderer zone details must read daemon zone facts through AetheriaClient."
Assert-Contains $sectorRenderer "OpenRuntimeCatalog" "SectorRenderer zone details must read catalog data through AetheriaClient."
Assert-Contains $sectorRenderer "PlayerSettingsAsync" "SectorRenderer zone details must read formatting settings through AetheriaClient."
Assert-Contains $sectorRenderer ".Details" "SectorRenderer zone details must read daemon zone facts through managed detail documents."
Assert-Contains $sectorRenderer ".Zone(zoneIndex)" "SectorRenderer zone details must read the typed zone-details document handle."
Assert-Contains $sectorRenderer ".Catalog" "SectorRenderer zone details must read catalog data through managed typed state."
Assert-Contains $sectorRenderer ".Settings" "SectorRenderer zone details must read formatting settings through managed typed state."
Assert-Contains $sectorRenderer ".Player" "SectorRenderer zone details must read the player settings document handle."
Assert-NotContains $sectorRenderer "ZoneDetailsAsync" "SectorRenderer zone details must not use the transitional zone-details helper."
Assert-NotContains $sectorRenderer "OpenRuntimeCatalog" "SectorRenderer zone details must not use the transitional catalog helper."
Assert-NotContains $sectorRenderer "PlayerSettingsAsync" "SectorRenderer zone details must not use the transitional player settings helper."
Assert-NotContains $sectorRenderer "public ActionGameManager" "SectorRenderer must not regain an ActionGameManager serialized dependency."
Assert-NotContains $sectorRenderer "TryGetObservedRunZone" "SectorRenderer must not ask ActionGameManager for the current zone."
Assert-NotContains $sectorRenderer "ActionGameManager.RuntimeCatalog" "SectorRenderer must not read manager-global runtime catalog."
@ -87,7 +99,10 @@ Assert-Contains $inventoryPanel ".StationRefit" "InventoryPanel dropdown entity
Assert-NotContains $inventoryPanel ".CurrentDockingAsync()" "InventoryPanel dropdown docking access must not use the transitional current-docking helper."
Assert-NotContains $inventoryPanel ".StationRefitAsync()" "InventoryPanel dropdown entity options must not use the transitional station-refit helper."
Assert-Contains $inventoryPanel "LoadoutRestoreOptions" "InventoryPanel loadout dropdown must read typed station-refit restore options."
Assert-Contains $inventoryPanel "LoadoutTemplateAsync(targetEntityKey)" "InventoryPanel loadout saves must project the target entity through the typed client."
Assert-Contains $inventoryPanel "AetheriaRuntimeLoadoutSnapshotProjector" "InventoryPanel loadout saves must project the target entity through the managed state projector."
Assert-Contains $inventoryPanel "ProjectLoadoutTemplateAsync(client.State, targetEntityKey)" "InventoryPanel loadout saves must compose from managed typed state."
Assert-Contains $inventoryPanel ".Ui.SaveLoadoutTemplateAsync" "InventoryPanel loadout saves must submit through the Aetheria UI command shell."
Assert-NotContains $inventoryPanel "LoadoutTemplateAsync(targetEntityKey)" "InventoryPanel loadout saves must not use the transitional loadout helper."
Assert-Contains $inventoryPanel "AetheriaRuntimeStationLoadoutRestoreOption" "InventoryPanel loadout restore submission must use typed station-refit option rows."
Assert-Contains $inventoryPanel "TryResolveObservedDockingIndex(out var dockingIndex)" "InventoryPanel dropdown docking access must enter through the typed docking adapter."
Assert-NotContains $inventoryPanel "TryGetTypedCurrentDockingBayFacade" "InventoryPanel dropdown docking access must not keep transitional typed facade helpers."
@ -125,8 +140,8 @@ Assert-Contains $inventoryMenu "_shipSettingsCurrentEntity" "InventoryMenu ship-
Assert-Contains $inventoryMenu "latestCurrentEntity.ShutdownPerformance" "InventoryMenu ship-settings surface must use typed shutdown-performance projection."
Assert-Contains $inventoryMenu "TryResolveObservedDockingIndex(out var dockingIndex)" "InventoryMenu current facade access must enter through the typed docking adapter."
Assert-NotContains $inventoryMenu "TryGetTypedCurrentEntityFacade" "InventoryMenu current facade access must not keep transitional typed facade helpers."
Assert-Contains $inventoryMenu "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "InventoryMenu must receive facade adaptation explicitly."
Assert-Contains $inventoryMenu "_observedFacadeIndex.TryResolveEntityByRecordKey" "InventoryMenu must adapt current entity facades by typed daemon record key."
Assert-NotContains $inventoryMenu "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "InventoryMenu must not keep transitional observed facade adaptation."
Assert-NotContains $inventoryMenu "_observedFacadeIndex.TryResolveEntityByRecordKey" "InventoryMenu must not adapt current entity facades by typed daemon record key."
Assert-Contains $inventoryMenu ".Docking" "InventoryMenu docking facade access must read the typed current-docking document handle."
Assert-Contains $inventoryMenu ".StationRefit" "InventoryMenu docking options must read the typed station-refit document handle."
Assert-NotContains $inventoryMenu ".CurrentDockingAsync()" "InventoryMenu docking facade access must not use the transitional current-docking helper."
@ -144,7 +159,9 @@ Assert-NotMatches $inventoryMenu "HandleCurrentShipSettingsSurfaceCommand[\s\S]*
Assert-Contains $inventoryPanel "TryResolveTypedInventoryRows" "InventoryPanel cargo/equipment submissions must validate against typed inventory projection rows."
Assert-Contains $inventoryPanel "TryValidateTypedCargoSlot" "InventoryPanel cargo submissions must validate typed cargo slot identity."
Assert-Contains $inventoryPanel "TryValidateTypedEquipmentSlot" "InventoryPanel equipment submissions must validate typed equipment slot identity."
Assert-Contains $inventoryPanel "InventoryAsync(entityIndex)" "InventoryPanel must read non-current inventory through the typed client facade."
Assert-Contains $inventoryPanel ".Details" "InventoryPanel must read non-current inventory through managed detail documents."
Assert-Contains $inventoryPanel ".Inventory(entityIndex)" "InventoryPanel must read non-current inventory through the typed inventory document handle."
Assert-NotContains $inventoryPanel "InventoryAsync(entityIndex)" "InventoryPanel must not use the transitional inventory helper."
Assert-Contains $inventoryPanel "origin.Cargo.TryGetValue(item, out var originPosition)" "InventoryPanel cargo submissions must carry the typed origin grid cell."
Assert-NotContains $inventoryPanel "int.MinValue" "InventoryPanel cargo/equipment submissions must not send unknown origin coordinates."
Assert-NotContains $inventoryPanel "TryResolveObservedCargoBayCommandTarget" "InventoryPanel must not resolve cargo operations through manager command-target adapters."
@ -152,7 +169,9 @@ Assert-NotContains $inventoryPanel "TryResolveObservedEquippedItemCommandTarget"
Assert-Contains $inventoryMenu "TryResolveTypedInventoryRows" "InventoryMenu cargo/equipment submissions must validate against typed inventory projection rows."
Assert-Contains $inventoryMenu "TryValidateTypedCargoSlot" "InventoryMenu cargo submissions must validate typed cargo slot identity."
Assert-Contains $inventoryMenu "TryValidateTypedEquipmentSlot" "InventoryMenu equipment submissions must validate typed equipment slot identity."
Assert-Contains $inventoryMenu "InventoryAsync(entityIndex)" "InventoryMenu must read non-current inventory through the typed client facade."
Assert-Contains $inventoryMenu ".Details" "InventoryMenu must read non-current inventory through managed detail documents."
Assert-Contains $inventoryMenu ".Inventory(entityIndex)" "InventoryMenu must read non-current inventory through the typed inventory document handle."
Assert-NotContains $inventoryMenu "InventoryAsync(entityIndex)" "InventoryMenu must not use the transitional inventory helper."
Assert-Contains $inventoryMenu "origin.Cargo.TryGetValue(item, out var originPosition)" "InventoryMenu cargo submissions must carry the typed origin grid cell."
Assert-Contains $inventoryMenu "SetActionBarPresentation(AetheriaUnityActionBarPresentation actionBarPresentation)" "InventoryMenu must receive action-bar presentation explicitly."
Assert-NotContains $inventoryMenu "ProjectEquippedItemActionBarSlots(" "InventoryMenu must not project Unity-local action-bar binding controls into the shared equipped-item surface."
@ -210,15 +229,18 @@ Assert-NotContains $tradeMenu "HullItemKey" "TradeMenu owned ship counts must co
$inventoryPanel = Read-Text "Assets\Scripts\UI\Menu\InventoryPanel.cs"
Assert-Contains $inventoryPanel ".StationRefit" "InventoryPanel must resolve station/refit selections from typed station-refit projection."
Assert-Contains $inventoryPanel "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "InventoryPanel must receive facade adaptation explicitly."
Assert-Contains $inventoryPanel "_observedFacadeIndex.TryResolveEntityByRecordKey" "InventoryPanel may adapt Unity facade objects only by typed daemon record key."
Assert-Contains $inventoryPanel "_observedFacadeIndex.TryResolveDockingBayByRecordKey" "InventoryPanel must adapt docking bays by typed daemon parent key and docking bay index."
Assert-Contains $inventoryPanel "SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)" "InventoryPanel must receive entity adaptation explicitly."
Assert-Contains $inventoryPanel "_observedEntityIndex.TryResolveEntityByRecordKey" "InventoryPanel may adapt Unity facade objects only by typed daemon record key."
Assert-Contains $inventoryPanel "new AetheriaUnityObservedDockingIndex(ResolveClient, _observedEntityIndex)" "InventoryPanel must adapt docking through the typed docking index."
Assert-NotContains $inventoryPanel "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "InventoryPanel must not keep transitional generic facade adaptation."
Assert-NotContains $inventoryPanel "_observedFacadeIndex" "InventoryPanel must not keep the generic observed facade index."
Assert-NotContains $inventoryPanel "ObservedAvailableEntities()" "InventoryPanel must not read broad manager-global available entity collections."
Assert-NotContains $inventoryPanel "TryGetObservedDockingBay(" "InventoryPanel must read typed current docking before adapting a Unity docking bay facade."
$inventoryMenu = Read-Text "Assets\Scripts\UI\Menu\InventoryMenu.cs"
Assert-Contains $inventoryMenu ".Docking" "InventoryMenu must resolve docking display state from typed current-docking projection."
Assert-Contains $inventoryMenu "_observedFacadeIndex.TryResolveDockingBayByRecordKey" "InventoryMenu must adapt docking bays by typed daemon parent key and docking bay index."
Assert-Contains $inventoryMenu "new AetheriaUnityObservedDockingIndex(ResolveClient, _observedEntityIndex)" "InventoryMenu must adapt docking bays through the typed docking index."
Assert-NotContains $inventoryMenu "_observedFacadeIndex" "InventoryMenu must not keep the generic observed facade index."
Assert-NotContains $inventoryMenu "TryGetObservedDockingBay(" "InventoryMenu must not read broad manager-global docking bay state."
$localMenu = Read-Text "Assets\Scripts\UI\Menu\LocalMenu.cs"
@ -226,10 +248,12 @@ Assert-Contains $localMenu "TryResolveDockedLocalStory(out _currentLocation)" "L
Assert-Contains $localMenu ".Aetheria()" "LocalMenu local story visibility must enter state through the semantic Aetheria facade."
Assert-Contains $localMenu ".Docking" "LocalMenu must read typed current-docking state before showing local story."
Assert-NotContains $localMenu ".CurrentDockingAsync()" "LocalMenu must not use the transitional current-docking helper."
Assert-Contains $localMenu "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "LocalMenu must receive facade adaptation explicitly."
Assert-Contains $localMenu "_observedFacadeIndex.TryResolveDockingBayByRecordKey" "LocalMenu may adapt story-bearing docking parents only by typed parent key and docking bay index."
Assert-Contains $localMenu "docking.DockParentEntityKey" "LocalMenu must use typed dock parent identity for local story adaptation."
Assert-Contains $localMenu "docking.DockingBayIndex" "LocalMenu must use typed docking bay index for local story adaptation."
Assert-Contains $localMenu "SetObservedEntityIndex(AetheriaUnityObservedEntityIndex observedEntityIndex)" "LocalMenu must receive entity adaptation explicitly."
Assert-Contains $localMenu "_observedEntityIndex.TryResolveDockingBayByRecordKey" "LocalMenu may adapt story-bearing docking parents only by typed parent key and docking bay index."
Assert-NotContains $localMenu "SetObservedFacadeIndex(AetheriaUnityObservedFacadeIndex observedFacadeIndex)" "LocalMenu must not keep transitional generic facade adaptation."
Assert-NotContains $localMenu "_observedFacadeIndex" "LocalMenu must not keep the generic observed facade index."
Assert-Contains $localMenu "dockingState.DockParentEntityKey" "LocalMenu must use typed dock parent identity for local story adaptation."
Assert-Contains $localMenu "dockingState.DockingBayIndex" "LocalMenu must use typed docking bay index for local story adaptation."
Assert-NotContains $localMenu "TryGetObservedDockedLocalStory" "LocalMenu must not ask ActionGameManager for docked local story state."
Assert-NotContains $localMenu "DockedEntity" "LocalMenu must not read ActionGameManager.DockedEntity."
@ -272,11 +296,14 @@ $renderSettingsBridge = Read-Text "Assets\Scripts\Gameplay\AetheriaUnityRenderSe
$cockpitHudShell = Read-Text "Assets\Scripts\Gameplay\AetheriaUnityCockpitHudShell.cs"
$gameplayBootShell = Read-Text "Assets\Scripts\Gameplay\AetheriaUnityGameplayBootShell.cs"
$sceneWiring = Read-Text "Assets\Scripts\Gameplay\AetheriaUnityGameplaySceneWiring.cs"
Assert-Contains $actionGameManager "private readonly AetheriaUnityObservedFacadeIndex _observedFacadeIndex" "ActionGameManager must keep observed facade adaptation behind an explicit helper."
Assert-Contains $actionGameManager "private readonly AetheriaUnityObservedEntityIndex _observedEntityIndex" "ActionGameManager must keep observed entity adaptation behind an explicit helper."
Assert-Contains $actionGameManager "private AetheriaUnityObservedDockingIndex _observedDocking" "ActionGameManager must keep observed docking adaptation behind an explicit helper."
Assert-Contains $actionGameManager "private AetheriaUnityGameplaySceneWiring SceneWiring =>" "ActionGameManager should delegate Unity scene dependency wiring to a focused helper."
Assert-Contains $actionGameManager "SceneWiring.ConfigureObservedFacadeIndex(_observedFacadeIndex)" "ActionGameManager should delegate facade injection to scene wiring."
Assert-Contains $actionGameManager "SceneWiring.ConfigureObservedEntityIndex(_observedEntityIndex)" "ActionGameManager should delegate entity-index injection to scene wiring."
Assert-Contains $sceneWiring "public sealed class AetheriaUnityGameplaySceneWiring" "Unity scene wiring should live outside ActionGameManager."
Assert-Contains $sceneWiring "Inventory?.SetObservedFacadeIndex(observedFacadeIndex)" "Scene wiring should inject facade adaptation into InventoryMenu."
Assert-Contains $sceneWiring "Inventory?.SetObservedEntityIndex(observedEntityIndex)" "Scene wiring should inject entity adaptation into InventoryMenu."
Assert-NotContains $actionGameManager "AetheriaUnityObservedFacadeIndex" "ActionGameManager must not keep the generic observed facade index."
Assert-NotContains $sceneWiring "SetObservedFacadeIndex" "Scene wiring must not inject the generic observed facade index."
Assert-NotContains $actionGameManager "public bool TryResolveObservedEntityRecordKey" "ActionGameManager must not expose facade record-key lookup as public manager API."
Assert-NotContains $actionGameManager "public bool TryResolveObservedEntityFacadeByRecordKey" "ActionGameManager must not expose entity facade lookup as public manager API."
Assert-NotContains $actionGameManager "public bool TryResolveObservedDockingBayFacadeByRecordKey" "ActionGameManager must not expose docking facade lookup as public manager API."
@ -284,13 +311,13 @@ Assert-Contains $actionGameManager "var boot = GameplayBootShell.Boot();" "Actio
Assert-Contains $actionGameManager "SceneWiring.ConfigureCurrentEntityPresentation(_currentEntityPresentation, boot.RuntimeCatalog);" "ActionGameManager should delegate boot catalog injection into current-entity presentation."
Assert-Contains $actionGameManager "SceneWiring.ConfigureTargetPresentation(" "ActionGameManager should delegate boot catalog injection into target presentation."
Assert-Contains $actionGameManager "() => ResolveDaemonObserver()?.Client" "ActionGameManager should give target queries the typed local client, not a raw zone snapshot delegate."
Assert-Contains $sceneWiring "observedFacadeIndex.TryResolveEntityByDaemonIndex" "Scene wiring should adapt target presentation entities through the facade index."
Assert-Contains $sceneWiring "observedEntityIndex.TryResolveEntityByDaemonIndex" "Scene wiring should adapt target presentation entities through the observed entity index."
Assert-Contains $actionGameManager "SceneWiring.ConfigureActionBarPresentation(" "ActionGameManager should delegate boot catalog injection into local action-bar presentation."
Assert-NotContains $actionGameManager "private void ConfigureCurrentEntityPresentation(" "ActionGameManager must not own current-entity presentation scene wiring."
Assert-NotContains $actionGameManager "private void ConfigureTargetPresentation(" "ActionGameManager must not own target presentation scene wiring."
Assert-NotContains $actionGameManager "TryGetObservedEntityFacade" "ActionGameManager must not own daemon-index facade lookup shims."
Assert-NotContains $actionGameManager "private void ConfigureActionBarPresentation(" "ActionGameManager must not own action-bar presentation scene wiring."
Assert-NotContains $actionGameManager "private void ConfigureObservedFacadeIndex(" "ActionGameManager must not own facade scene wiring."
Assert-NotContains $actionGameManager "private void ConfigureObservedFacadeIndex(" "ActionGameManager must not own generic facade scene wiring."
Assert-NotContains $actionGameManager "private static AetheriaRuntimeCatalogSnapshot _runtimeCatalog" "ActionGameManager must not cache runtime catalog as manager-global state."
Assert-NotContains $actionGameManager "FindTypedRuntimeItem(" "ActionGameManager must not own runtime catalog item lookup policy."
Assert-NotContains $actionGameManager "ArticulatedWeaponBehaviorKinds" "ActionGameManager must not own weapon presentation policy."
@ -300,7 +327,10 @@ Assert-Contains $gameplayBootShell "public sealed class AetheriaUnityGameplayBoo
Assert-Contains $gameplayBootShell "AetheriaRuntimeStateBoot.Inspect(AetheriaUnityRuntimePaths.GameDataDirectory)" "Gameplay boot shell should inspect the runtime target."
Assert-Contains $gameplayBootShell "AetheriaUnityRuntimeClientProvider.ResolveClient(stateBoot.StateFilePath, stateBoot.RuntimeId)" "Gameplay boot shell should resolve the typed runtime client with the inspected Verse runtime id."
Assert-Contains $gameplayBootShell "Aetheria runtime id: {stateBoot.RuntimeId}" "Gameplay boot shell should log the inspected Verse runtime id."
Assert-Contains $gameplayBootShell ".OpenRuntimeCatalog()" "Gameplay boot shell should open the typed runtime catalog."
Assert-Contains $gameplayBootShell ".Aetheria()" "Gameplay boot shell should enter managed typed state for runtime catalog."
Assert-Contains $gameplayBootShell ".Catalog" "Gameplay boot shell should read the managed runtime catalog document handle."
Assert-Contains $gameplayBootShell ".Latest()" "Gameplay boot shell should read the latest typed runtime catalog snapshot."
Assert-NotContains $gameplayBootShell ".OpenRuntimeCatalog()" "Gameplay boot shell should not use the transitional runtime catalog helper."
Assert-Contains $gameplayBootShell "new ItemManager(" "Gameplay boot shell should construct the Unity item adapter."
Assert-Contains $gameplayBootShell "new AetheriaUnityLoadoutItemProjector(itemManager, runtimeCatalog)" "Gameplay boot shell should construct the loadout item projector."
Assert-Contains $gameplayBootShell "ZoneRenderer.SetDroppedPickupItemProjector(loadoutItemProjector.CreateLoadoutItem)" "Gameplay boot shell should configure dropped pickup projection."
@ -417,7 +447,11 @@ Assert-Contains $gameplayBootShell "AetheriaUnityRuntimeClientProvider.ResolveCl
Assert-Contains $runtimeClientProvider "public static class AetheriaUnityRuntimeClientProvider" "Unity runtime client cache should live outside ActionGameManager."
Assert-Contains $runtimeClientProvider "public static RuntimePlayerSettings PlayerSettings =>" "Unity runtime client provider should own player settings loading."
Assert-Contains $runtimeClientProvider "public static AetheriaClient ResolveClient(string stateFilePath, string runtimeId = """")" "Unity runtime client provider should own runtime-id-aware typed client caching."
Assert-Contains $runtimeClientProvider "PlayerSettingsAsync()" "Unity runtime client provider should read player settings through AetheriaClient."
Assert-Contains $runtimeClientProvider ".Aetheria()" "Unity runtime client provider should read player settings through managed typed state."
Assert-Contains $runtimeClientProvider ".Settings" "Unity runtime client provider should read player settings through the settings facade."
Assert-Contains $runtimeClientProvider ".Player" "Unity runtime client provider should read the player settings document handle."
Assert-Contains $runtimeClientProvider ".Latest()" "Unity runtime client provider should read a typed player settings snapshot."
Assert-NotContains $runtimeClientProvider "PlayerSettingsAsync()" "Unity runtime client provider must not use the transitional player settings helper."
Assert-NotContains $actionGameManager "ResolveRuntimeClient(" "ActionGameManager should not own typed client caching."
Assert-NotContains $actionGameManager "PlayerSettingsAsync()" "ActionGameManager should not load player settings directly."
Assert-NotContains $actionGameManager "ApplyRuntimePlayerSettings(" "ActionGameManager should not map player settings snapshots."
@ -516,7 +550,9 @@ $client = Read-Text "Packages\org.gamecult.aetheria.state\Runtime\AetheriaClient
$loadoutProjector = Read-Text "Packages\org.gamecult.aetheria.state\Runtime\AetheriaRuntimeLoadoutSnapshotProjector.cs"
Assert-Contains $loadoutProjector "ProjectLoadoutTemplate(" "Typed loadout projection must live in the shared runtime package."
Assert-Contains $loadoutProjector "AetheriaRuntimeEntitySnapshotCommit entity" "Shared loadout projection must support daemon entity snapshots."
Assert-Contains $client "LoadoutTemplateAsync" "AetheriaClient must expose daemon-backed loadout template projection."
Assert-Contains $loadoutProjector "ProjectLoadoutTemplateAsync(" "Shared loadout projection must compose loadout templates from managed typed state."
Assert-Contains $loadoutProjector "AetheriaClientState state" "Shared loadout projection must accept the managed client state surface."
Assert-NotContains $client "LoadoutTemplateAsync" "AetheriaClient must not expose transitional loadout template projection helpers."
$inventoryPanel = Read-Text "Assets\Scripts\UI\Menu\InventoryPanel.cs"
Assert-NotContains $inventoryPanel "AetheriaRuntimeLoadoutProjector.ProjectLoadoutTemplate(entity)" "InventoryPanel must not save loadouts by serializing Unity entity facades."
@ -646,7 +682,7 @@ Assert-Contains $zoneRenderDocs "BodyPoses" "Zone-render feed must carry body po
Assert-Contains $zoneRenderDocs "AsteroidBeltPoses" "Zone-render feed must carry asteroid belt poses as explicit render facts."
Assert-Contains $zoneRenderDocs "AetheriaRuntimeZoneRenderAsteroidInstancePose" "Zone-render feed must carry typed asteroid instance poses."
Assert-Contains $zoneRenderDocs "DroppedPickups" "Zone-render feed must carry dropped pickups as explicit render facts."
Assert-Contains $zoneRenderDocs "EntityFacades" "Zone-render feed must carry typed entity facade payloads for Unity shell restoration."
Assert-Contains $zoneRenderDocs "EntitySnapshots" "Zone-render feed must carry typed entity snapshots for Unity shell restoration."
Assert-Contains $zoneRenderDocs "public IReadOnlyList<AetheriaRuntimeOrbitSnapshotCommit> Orbits" "Zone-render feed must carry typed orbit rows for Unity zone context lowering."
Assert-Contains $zoneRenderDocs "public IReadOnlyList<AetheriaRuntimeBodySnapshotCommit> Bodies" "Zone-render feed must carry typed body rows for Unity zone context lowering."
Assert-NotContains $zoneRenderDocs "public AetheriaRuntimeRunCheckpointCommit Run" "Zone-render feed must not expose the whole daemon run snapshot."
@ -666,14 +702,16 @@ Assert-Contains $zoneRenderer ".LatestAsync()" "ZoneRenderer target distance cac
Assert-NotContains $zoneRenderer ".ZoneContactsAsync()" "ZoneRenderer target distance cache must not use the transitional zone-contacts helper."
Assert-Contains $zoneRenderer "_daemonTargetRowsByEntityIndex" "ZoneRenderer target distance cache must store typed target rows."
Assert-Contains $zoneRenderer "_daemonContactRows" "ZoneRenderer compass and visibility state must cache typed contact rows."
Assert-Contains $zoneRenderer "ObjectsViewportAsync(ToViewportBounds(viewport))" "ZoneRenderer presentation loading must use the typed objects viewport facade."
Assert-Contains $zoneRenderer "GravityViewportAsync(viewport)" "ZoneRenderer body view loading must use the typed gravity viewport facade."
Assert-Contains $zoneRenderer ".Viewports" "ZoneRenderer presentation loading must use managed viewport document handles."
Assert-Contains $zoneRenderer ".Objects(ToViewportBounds(viewport))" "ZoneRenderer presentation loading must use the typed objects viewport document handle."
Assert-NotContains $zoneRenderer "ObjectsViewportAsync(ToViewportBounds(viewport))" "ZoneRenderer presentation loading must not use the transitional objects viewport helper."
Assert-NotContains $zoneRenderer "GravityViewportAsync(viewport)" "ZoneRenderer body view loading must not use the transitional gravity viewport helper."
Assert-Contains $zoneRenderDocs "public AetheriaRuntimeBodySnapshotCommit Body" "Gravity/body viewport rows must carry the typed body payload needed for Unity presentation lowering."
Assert-Contains $zoneRenderDocs "public double TerrainRadius" "Gravity viewport rows must carry terrain radius for local renderer height sampling."
Assert-Contains $zoneRenderDocs "public double TerrainDepth" "Gravity viewport rows must carry terrain depth for local renderer height sampling."
Assert-Contains $zoneRenderDocs "public double TerrainDepthExponent" "Gravity viewport rows must carry terrain exponent for local renderer height sampling."
Assert-Contains $zoneRenderDocs "public double TerrainWaveFrequency" "Gravity viewport rows must carry wave frequency for local renderer height sampling."
Assert-Contains $zoneRenderer "_daemonGravityViewport" "ZoneRenderer terrain sampling must use the cached typed gravity viewport."
Assert-Contains $zoneRenderer "_zoneRenderBodyPoses" "ZoneRenderer terrain/body presentation must consume typed body poses from zone-render."
Assert-Contains $zoneRenderer "ZoneRenderRadius" "ZoneRenderer must consume render radius from the zone-render feed."
Assert-NotContains $zoneRenderer "_daemonRunSnapshot" "ZoneRenderer must not retain the whole daemon run snapshot."
Assert-NotContains $zoneRenderer "_daemonZoneSnapshot" "ZoneRenderer must not retain the whole daemon zone snapshot."
@ -712,7 +750,7 @@ Assert-NotContains $actionGameManager "_time" "ActionGameManager must not keep u
Assert-Contains $observedFrameApplier "TryRestoreEntityGraphFromZoneRender" "Observed frame applier must restore Unity shell state from the typed zone-render feed."
Assert-Contains $observedFrameApplier "ApplyLatestZoneRender" "Observed frame applier must name the handoff as zone-render application."
Assert-Contains $observedFrameApplier ".ZoneRender" "Observed frame applier must use the shared zone-render document handle at the frame handoff."
Assert-Contains $observedFrameApplier "render.EntityFacades" "Observed frame applier entity restoration must consume the typed zone-render entity facade payload."
Assert-Contains $observedFrameApplier "render.EntitySnapshots" "Observed frame applier entity restoration must consume the typed zone-render entity snapshot payload."
Assert-NotContains $observedFrameApplier "Func<Galaxy>" "Observed frame applier must not depend on the whole observed galaxy facade."
Assert-Contains $observedFrameApplier "_resolveObservedZone" "Observed frame applier should name the narrow target-zone resolver explicitly."
Assert-NotContains $observedFrameApplier "resolveObservedGalaxy" "Observed frame applier must resolve only the target zone needed for Unity shell adaptation."