From 93fa34dd0939657e1893acbfec5d5fd18dd85365 Mon Sep 17 00:00:00 2001 From: Meta Vens Date: Sat, 13 Jun 2026 22:33:58 +0100 Subject: [PATCH] Rename runtime projection base for items --- .voidbot/state/aetheria.cc | Bin 50394 -> 50789 bytes Aetheria.State/README.md | 4 ++-- Assets/Scripts/ServerShared/ItemData.cs | 2 +- ...Entry.cs => RuntimeItemProjectionEntry.cs} | 4 ++-- ...eta => RuntimeItemProjectionEntry.cs.meta} | 0 docs/aetheria-perfect-machine-map.md | 20 +++++++++--------- 6 files changed, 15 insertions(+), 15 deletions(-) rename Assets/Scripts/ServerShared/RuntimeProjection/{RuntimeProjectionEntry.cs => RuntimeItemProjectionEntry.cs} (88%) rename Assets/Scripts/ServerShared/RuntimeProjection/{RuntimeProjectionEntry.cs.meta => RuntimeItemProjectionEntry.cs.meta} (100%) diff --git a/.voidbot/state/aetheria.cc b/.voidbot/state/aetheria.cc index 32a5e1888f467753b8ed910330bed60d36fc8af9..35a67b02c65ef0ba1237a499396cf610709c6970 100644 GIT binary patch delta 1321 zcmZ8hO^g&p6wdAtTueZs;G&|wgNcO93=5l`C2}yzirFaahAfb*7v6Ngo-XOG8mg*y z95_sjC!!%Cb?`#6Yy6juL!88j91J8}<-FWDaPvUoS>;vD4-;>l*RS6D{;D2aDLwk4 zbo0B(XJ?PRHCwCJ=8vpio7n5_O@2PA%!i69T^d%7&W6g=wpS;AJ=lA5+tn{8Qg?H6 zy3;}fnk42FgH>?4kXGchXenRT>SKzmQ1U%#bsI3Tqye)Gq>>fE9k8&nWS~WwASx_m zN*Stt8)Yc+t$$Zi;=wrzDP#joikdexM>9dh#H%{C4RtgG!hj!HQ8H^+;RJ@oWq4P` z?FF=0h9zAWw*QGThIbl#d#5A?z`*?Iy2`lx`}Go<|ujDM@AU z=dC|#YzHlYBu_pip+U7I94|6^oafLX|85KzZ7K0IakpfQ** zRZLkKj0!z{)BH@&y;*4CrED{ELs?RVMHU6MRxK0SO`+GsnzusagJvF-oGon8w~yOU zH^_$W;O+pFkj4_mpb}PiFav?*CoQ6p3}eo+pYHJ8y>q{uqE9R{W;H6NDI`HlX%;bi;Kwr`?^)ugsk| zr63b)#F;5HYt8ZEB>M|*`Cf(vK59cRO*^lv%>8#`-$cz_ySnGKLB_*nuRKLj>1WTK z|Jm&xyg_p_tKV2`m~~g`Ztm}TYsL=T7!Hc9>UFz2cT5eBx%;J;2XEB;%uINr{`u{X lQKkQCsnT}$@Rk}?YyH>l_fJQaqrTF6?)IG>!_wi|)h8F)=Kufz delta 1105 zcmYk6%WD)t5XQ+vO$5apRN^BR2#OjfGG&>g}%G?PR8V(%s`ar$xLN zB7*cm5MmA*BjO=pJ*g-jyn8iwZ~g_Ita)tAb-L=S`hHb4zn^w(Ep=_Y?c6&uJ~cWS zjE;@ZJ?}W^e{?SQmS4t){q4`keA4CGG2>%-Oi%am&X23D)7{Tr^hI}-bSWs^0E6{Z z7{9r8WEWJ8j{N-mz}X5`wLz$|FqEnW6~-69X%JXtN$6~_#zQ8ft&SUa{LwT0O`&-b zp>iN?uF1eP^!Wx$!8+y;Y%CS2X#;uPDX{1q3ELs5;>5w->#&$$f))bKgBX>_s&XAg z(%C_9bp#g2p+o}>BOS%nLS13u6hnG5{@D7#fk9wOz!mPKR@YdBGfc4>B~-L_7X0P6 zhnktaTr4I(^mtx36bhIoOVf-~5ra&i3E*n!6Icl$2cT7$LZgm~Jc3JON^Sd~OsteNX5fM5Fn}^v7y*#r!(bJ&q71Gdfu`nOJx{H z0n8RuxJy_FZT>;Q7fOFnm0{bIg{YZWmwj?XrQipaIEU!8+Adg0fitC*#-pW2hlX(AElnY2xsuj5MQ$Gte|N+6X79KUV+|iD4CDoUeKCo+)0} zW)`b<>t~_|Tf#+}GPa?BP-Wv#Y;-)E7qbqki(~Tl@XO1RefzPpLEM7e5{Le?LEJ TCrsvlf!50}-+Q+|P0sxTF` abstraction has been deleted; item data projection is routed through `ItemManager` and the typed runtime catalog reader. -Surviving item catalog Unity DTOs inherit `RuntimeProjectionEntry`; the old +Surviving item catalog Unity DTOs inherit `RuntimeItemProjectionEntry`; the old `RuntimeCatalogEntry` base name no longer appears in live source. Temporary faction/corporation projections and 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. -Agent task DTOs no longer inherit `RuntimeProjectionEntry`; they are local +Agent task DTOs no longer inherit the item projection base; they are local runtime AI work orders until a typed Verse task document exists. `Aetheria.State.Import` captures the legacy catalog files into typed quarantine diff --git a/Assets/Scripts/ServerShared/ItemData.cs b/Assets/Scripts/ServerShared/ItemData.cs index 0938f9900..d3daa0a62 100644 --- a/Assets/Scripts/ServerShared/ItemData.cs +++ b/Assets/Scripts/ServerShared/ItemData.cs @@ -260,7 +260,7 @@ public class Shape } -public abstract class ItemData : RuntimeProjectionEntry, INamedEntry +public abstract class ItemData : RuntimeItemProjectionEntry, INamedEntry { [Inspectable, LegacyPayloadKey(1)] public string Name; diff --git a/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeProjectionEntry.cs b/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeItemProjectionEntry.cs similarity index 88% rename from Assets/Scripts/ServerShared/RuntimeProjection/RuntimeProjectionEntry.cs rename to Assets/Scripts/ServerShared/RuntimeProjection/RuntimeItemProjectionEntry.cs index e2269bdbb..c0474bf72 100644 --- a/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeProjectionEntry.cs +++ b/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeItemProjectionEntry.cs @@ -10,7 +10,7 @@ public interface INamedEntry string EntryName { get; set; } } -public abstract class RuntimeProjectionEntry +public abstract class RuntimeItemProjectionEntry { public Guid ID = Guid.NewGuid(); @@ -21,7 +21,7 @@ public abstract class RuntimeProjectionEntry public override bool Equals(object obj) { - if (obj is RuntimeProjectionEntry entry) return entry.ID == ID; + if (obj is RuntimeItemProjectionEntry entry) return entry.ID == ID; return false; } } diff --git a/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeProjectionEntry.cs.meta b/Assets/Scripts/ServerShared/RuntimeProjection/RuntimeItemProjectionEntry.cs.meta similarity index 100% rename from Assets/Scripts/ServerShared/RuntimeProjection/RuntimeProjectionEntry.cs.meta rename to Assets/Scripts/ServerShared/RuntimeProjection/RuntimeItemProjectionEntry.cs.meta diff --git a/docs/aetheria-perfect-machine-map.md b/docs/aetheria-perfect-machine-map.md index e66535951..e7eaf4fee 100644 --- a/docs/aetheria-perfect-machine-map.md +++ b/docs/aetheria-perfect-machine-map.md @@ -46,7 +46,7 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. the provider-owned Eve command bridge on startup and on a daemon polling loop while hosting the CultMesh state node. `Aetheria.State.ApplyPending` remains a bounded local operator applicator for both pending lanes. -- Shared item domain state is still partly built around `RuntimeProjectionEntry`, +- Shared item domain state is still partly built around `RuntimeItemProjectionEntry`, GUID identity, runtime catalog metadata, and static projection references. Dead user-record and galaxy-map-layer catalog roots have been deleted, and surviving runtime DTOs no longer carry legacy catalog group/table annotations. Newtonsoft, @@ -103,7 +103,7 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. catalog resolver. The old `LegacyItemCatalogBoundary`, `LegacyItemCatalogCache`, and runtime MessagePack deserializer path have been deleted. The old `DatabaseEntry`/`RuntimeCatalogEntry` base has been demoted - to `RuntimeProjectionEntry` for surviving runtime DTOs, and the old generic + to `RuntimeItemProjectionEntry` for surviving item DTOs, and the old generic `DatabaseLink`/`RuntimeCatalogLink` path has collapsed into the item-specific runtime reference. - `ItemManager` no longer exposes the raw runtime item catalog reader as public @@ -308,13 +308,13 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. - Declaration-only personality fields on `Faction`/`Entity` and the unused production personality setting have also been cut; there is no surviving personality-state owner in live Unity source. -- `AgentTask` has been cut loose from `RuntimeProjectionEntry`; AI tasks are +- `AgentTask` has been cut loose from the item projection base; 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, + the item projection base; they keep local GUID fields for zone runtime lookup, but no longer inherit shared projection equality. -- `Faction` has been cut loose from `RuntimeProjectionEntry`; it keeps local +- `Faction` has been cut loose from the item projection base; it keeps local GUID equality for galaxy dictionaries while typed corporation records remain the durable catalog owner. - `Aetheria.Shared.Unity` no longer references the vendored `MessagePack` @@ -376,7 +376,7 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. contract for full .NET smokes and Eve surface reads. Neither writes state or owns simulation. The runtime no longer has a MessagePack catalog cache. `AetheriaRuntimeItemCatalog` materializes temporary `ItemData` DTOs from typed - item records for the old simulation object model. `RuntimeProjectionEntry` is + item records for the old simulation object model. `RuntimeItemProjectionEntry` is an item projection identity helper, not a persistence base or corporation owner, and behavior type selection now uses an explicit runtime catalog map instead of `UnionAttribute` reflection. @@ -412,7 +412,7 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. file save, and migration all need to converge on one typed commit primitive. - Deletion line: no new behavior should be added to old `ItemData` DTO metadata or MessagePack catalog paths except bounded migration readers and the - current typed item projection bridge. `RuntimeProjectionEntry` is not a + current typed item projection bridge. `RuntimeItemProjectionEntry` is not a persistence owner. ## Target Authority Map @@ -429,7 +429,7 @@ legacy catalog cache, and legacy UI paths should be migration-only or deleted. `RuntimeCatalogEntry.ID`, global cache statics, and any compatibility reader. - Shared paths: gameplay input, editor edits, import/deep-load, replication, simulation ticks, and tests all call the same typed state service. -- Deletion line: replace the remaining `RuntimeProjectionEntry`/`ItemData` runtime DTO +- Deletion line: replace the remaining `RuntimeItemProjectionEntry`/`ItemData` runtime DTO projection with native typed item instances, then remove old MessagePack catalog metadata from live Unity source once import-only migration no longer needs it. @@ -575,7 +575,7 @@ First Aetheria surfaces to publish: projection names, and move the old `ServerShared/CultCache` folder to `ServerShared/RuntimeProjection`. - Done: rename the surviving runtime DTO identity base from - `RuntimeCatalogEntry` to `RuntimeProjectionEntry`. + `RuntimeCatalogEntry` to `RuntimeItemProjectionEntry`. - Done: delete unused `InspectableRuntimeCatalogLinkAttribute` metadata from runtime DTOs; link inspection no longer masquerades as catalog authority. - Done: replace behavior union reflection with an explicit runtime catalog @@ -741,7 +741,7 @@ First Aetheria surfaces to publish: - Live Unity source has no `RuntimeCatalogLink` or `RuntimeCatalogLinkBase`; item instances use `RuntimeItemReference` and expose `Data.ItemId`. - Live Unity source has no `RuntimeCatalogEntry`; only surviving item DTOs - inherit `RuntimeProjectionEntry`. + inherit `RuntimeItemProjectionEntry`. - Live Unity source has no `InspectableRuntimeCatalogLinkAttribute`; `LegacyPayloadKeyAttribute` remains only as the temporary mapper key. - Unity batchmode compile also returned cleanly after disabling `MessagePack`