namespace SpaceGame.Simulation.Api.Contracts; public sealed record InventoryEntry( string ItemId, float Amount); public sealed record StationSnapshot( string Id, string Label, string Category, string SystemId, Vector3Dto LocalPosition, string? NodeId, string? BubbleId, string? AnchorNodeId, string Color, int DockedShips, IReadOnlyList DockedShipIds, int DockingPads, IReadOnlyList CurrentProcesses, IReadOnlyList Inventory, string FactionId, string? CommanderId, string? PolicySetId, float Population, float PopulationCapacity, float WorkforceRequired, float WorkforceEffectiveRatio, IReadOnlyList StorageUsage, IReadOnlyList InstalledModules, IReadOnlyList MarketOrderIds); public sealed record StationDelta( string Id, string Label, string Category, string SystemId, Vector3Dto LocalPosition, string? NodeId, string? BubbleId, string? AnchorNodeId, string Color, int DockedShips, IReadOnlyList DockedShipIds, int DockingPads, IReadOnlyList CurrentProcesses, IReadOnlyList Inventory, string FactionId, string? CommanderId, string? PolicySetId, float Population, float PopulationCapacity, float WorkforceRequired, float WorkforceEffectiveRatio, IReadOnlyList StorageUsage, IReadOnlyList InstalledModules, IReadOnlyList MarketOrderIds); public sealed record StationActionProgressSnapshot( string Lane, string Label, float Progress); public sealed record StationStorageUsageSnapshot( string StorageClass, float Used, float Capacity); public sealed record ClaimSnapshot( string Id, string FactionId, string SystemId, string NodeId, string BubbleId, string State, float Health, DateTimeOffset PlacedAtUtc, DateTimeOffset ActivatesAtUtc); public sealed record ClaimDelta( string Id, string FactionId, string SystemId, string NodeId, string BubbleId, string State, float Health, DateTimeOffset PlacedAtUtc, DateTimeOffset ActivatesAtUtc); public sealed record ConstructionSiteSnapshot( string Id, string FactionId, string SystemId, string NodeId, string BubbleId, string TargetKind, string TargetDefinitionId, string? BlueprintId, string? ClaimId, string? StationId, string State, float Progress, IReadOnlyList Inventory, IReadOnlyList RequiredItems, IReadOnlyList DeliveredItems, IReadOnlyList AssignedConstructorShipIds, IReadOnlyList MarketOrderIds); public sealed record ConstructionSiteDelta( string Id, string FactionId, string SystemId, string NodeId, string BubbleId, string TargetKind, string TargetDefinitionId, string? BlueprintId, string? ClaimId, string? StationId, string State, float Progress, IReadOnlyList Inventory, IReadOnlyList RequiredItems, IReadOnlyList DeliveredItems, IReadOnlyList AssignedConstructorShipIds, IReadOnlyList MarketOrderIds);