namespace SpaceGame.Simulation.Api.Contracts; public sealed record StarSnapshot( string Kind, string Color, string Glow, float Size, float OrbitRadius, float OrbitSpeed, float OrbitPhaseAtEpoch); public sealed record MoonSnapshot( string Label, float Size, string Color, float OrbitRadius, float OrbitSpeed, float OrbitPhaseAtEpoch, float OrbitInclination, float OrbitLongitudeOfAscendingNode); public sealed record SystemSnapshot( string Id, string Label, Vector3Dto GalaxyPosition, IReadOnlyList Stars, IReadOnlyList Planets); public sealed record PlanetSnapshot( string Label, string PlanetType, string Shape, IReadOnlyList Moons, float OrbitRadius, float OrbitSpeed, float OrbitEccentricity, float OrbitInclination, float OrbitLongitudeOfAscendingNode, float OrbitArgumentOfPeriapsis, float OrbitPhaseAtEpoch, float Size, string Color, bool HasRing); public sealed record ResourceNodeSnapshot( string Id, string SystemId, Vector3Dto LocalPosition, string? CelestialId, string SourceKind, float OreRemaining, float MaxOre, string ItemId); public sealed record ResourceNodeDelta( string Id, string SystemId, Vector3Dto LocalPosition, string? CelestialId, string SourceKind, float OreRemaining, float MaxOre, string ItemId); public sealed record CelestialSnapshot( string Id, string SystemId, string Kind, Vector3Dto OrbitalAnchor, float LocalSpaceRadius, string? ParentNodeId, string? OccupyingStructureId, string? OrbitReferenceId); public sealed record CelestialDelta( string Id, string SystemId, string Kind, Vector3Dto OrbitalAnchor, float LocalSpaceRadius, string? ParentNodeId, string? OccupyingStructureId, string? OrbitReferenceId);