namespace SpaceGame.Api.Factions.Contracts; public sealed record FactionGoapStateSnapshot( int MilitaryShipCount, int MinerShipCount, int TransportShipCount, int ConstructorShipCount, int ControlledSystemCount, int TargetSystemCount, bool HasShipFactory, float OreStockpile, float RefinedMetalsStockpile, float RefinedMetalsProductionRate, float HullpartsStockpile, float HullpartsProductionRate, float ClaytronicsStockpile, float ClaytronicsProductionRate, float WaterStockpile, float WaterProductionRate, float WaterShortageHorizonSeconds); public sealed record FactionGoapPrioritySnapshot(string GoalName, float Priority); public sealed record FactionSnapshot( string Id, string Label, string Color, float Credits, float PopulationTotal, float OreMined, float GoodsProduced, int ShipsBuilt, int ShipsLost, string? DefaultPolicySetId, FactionGoapStateSnapshot? GoapState, IReadOnlyList? GoapPriorities); public sealed record FactionDelta( string Id, string Label, string Color, float Credits, float PopulationTotal, float OreMined, float GoodsProduced, int ShipsBuilt, int ShipsLost, string? DefaultPolicySetId, FactionGoapStateSnapshot? GoapState, IReadOnlyList? GoapPriorities);