using Unity.Entities; namespace ProjectM.Simulation { /// /// Tag marking the single GLOBAL shared-resource ledger — the entity whose [GhostField] /// buffer holds harvested resources (Aether/ore/biomass) replicated to ALL /// connections. It lives on the ownerless interpolated CycleDirector ghost, which carries NO /// , so GhostRelevancy (SetIsIrrelevant) keeps it relevant to players in EVERY /// region — base AND expedition — unlike the region-tagged base storage container (which relevancy hides /// from expedition players). Server systems resolve the ledger via /// GetSingletonEntity<ResourceLedger>() then GetBuffer<StorageEntry>() — NEVER /// GetSingleton<StorageEntry> (the base container owns a second StorageEntry buffer, so a /// buffer-typed singleton query would throw "multiple instances"). /// public struct ResourceLedger : IComponentData { } }