namespace SpaceGame.Simulation.Api.Contracts; public sealed record WorldSnapshot( string Label, int Seed, long Sequence, int TickIntervalMs, DateTimeOffset GeneratedAtUtc, IReadOnlyList Systems, IReadOnlyList SpatialNodes, IReadOnlyList LocalBubbles, IReadOnlyList Nodes, IReadOnlyList Stations, IReadOnlyList Claims, IReadOnlyList ConstructionSites, IReadOnlyList MarketOrders, IReadOnlyList Policies, IReadOnlyList Ships, IReadOnlyList Factions); public sealed record WorldDelta( long Sequence, int TickIntervalMs, DateTimeOffset GeneratedAtUtc, bool RequiresSnapshotRefresh, IReadOnlyList Events, IReadOnlyList SpatialNodes, IReadOnlyList LocalBubbles, IReadOnlyList Nodes, IReadOnlyList Stations, IReadOnlyList Claims, IReadOnlyList ConstructionSites, IReadOnlyList MarketOrders, IReadOnlyList Policies, IReadOnlyList Ships, IReadOnlyList Factions, ObserverScope? Scope = null); public sealed record SimulationEventRecord( string EntityKind, string EntityId, string Kind, string Message, DateTimeOffset OccurredAtUtc, string Family = "simulation", string ScopeKind = "universe", string? ScopeEntityId = null, string Visibility = "public"); public sealed record ObserverScope( string ScopeKind, string? SystemId = null, string? BubbleId = null);