namespace SpaceGame.Api.Contracts; public sealed record WorldSnapshot( string Label, int Seed, long Sequence, int TickIntervalMs, double OrbitalTimeSeconds, OrbitalSimulationSnapshot OrbitalSimulation, DateTimeOffset GeneratedAtUtc, IReadOnlyList Systems, IReadOnlyList Celestials, IReadOnlyList Nodes, IReadOnlyList Stations, IReadOnlyList Claims, IReadOnlyList ConstructionSites, IReadOnlyList MarketOrders, IReadOnlyList Policies, IReadOnlyList Ships, IReadOnlyList Factions); public sealed record WorldDelta( long Sequence, int TickIntervalMs, double OrbitalTimeSeconds, OrbitalSimulationSnapshot OrbitalSimulation, DateTimeOffset GeneratedAtUtc, bool RequiresSnapshotRefresh, IReadOnlyList Events, IReadOnlyList Celestials, 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? CelestialId = null); public sealed record OrbitalSimulationSnapshot( double SimulatedSecondsPerRealSecond);