diff --git a/Aetheria.State/README.md b/Aetheria.State/README.md index 1ad3f2145..638066971 100644 --- a/Aetheria.State/README.md +++ b/Aetheria.State/README.md @@ -69,8 +69,10 @@ and inspection metadata for the typed runtime bridge. Item instances now carry `RuntimeItemReference`, a narrow item-id/value holder. The old generic `RuntimeCatalogLink` abstraction has been deleted; item data projection is routed through `ItemManager` and the typed runtime catalog reader. -Surviving catalog and zone Unity DTOs inherit `RuntimeProjectionEntry`; the old -`RuntimeCatalogEntry` base name no longer appears in live source. +Surviving item/faction catalog Unity DTOs inherit `RuntimeProjectionEntry`; the +old `RuntimeCatalogEntry` base name no longer appears in live source. Zone +body/orbit DTOs keep local GUID fields but no longer inherit the shared +projection identity base. The dead `InspectableRuntimeCatalogLinkAttribute` inspector metadata is gone; typed runtime projection still uses `LegacyPayloadKeyAttribute` only where the temporary mapper needs a deterministic field order. diff --git a/Assets/Scripts/ServerShared/ZoneData.cs b/Assets/Scripts/ServerShared/ZoneData.cs index 798cf41a6..92d2c17f3 100644 --- a/Assets/Scripts/ServerShared/ZoneData.cs +++ b/Assets/Scripts/ServerShared/ZoneData.cs @@ -21,8 +21,10 @@ public class RuntimeZoneBlueprint public double Time; } -public abstract class BodyData : RuntimeProjectionEntry, INamedEntry +public abstract class BodyData : INamedEntry { + public Guid ID = Guid.NewGuid(); + public string Name = ""; public Guid Orbit; @@ -101,8 +103,10 @@ public class Asteroid public float RotationSpeed; } -public class OrbitData : RuntimeProjectionEntry +public class OrbitData { + public Guid ID = Guid.NewGuid(); + public Guid Parent; public float Distance; diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index 6cece7f38..aecfc4c3e 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -305,6 +305,9 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. - `AgentTask` has been cut loose from `RuntimeProjectionEntry`; AI tasks are local runtime work orders and no longer participate in the shared projection identity base. +- `BodyData` and `OrbitData` have also been cut loose from + `RuntimeProjectionEntry`; they keep local GUID fields for zone runtime lookup, + but no longer inherit shared projection equality. - `Aetheria.Shared.Unity` no longer references the vendored `MessagePack` assembly. The embedded `GameCult.Aetheria.State.Unity` package still depends on MessagePackReader to open CultCache `.cc` records; that dependency belongs