namespace SpaceGame.Api.Universe.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 ResourceDepositSnapshot( string Id, string NodeId, string AnchorId, Vector3Dto LocalPosition, float OreRemaining, float MaxOre); public sealed record ResourceNodeSnapshot( string Id, string AnchorId, string SystemId, Vector3Dto LocalPosition, float LocalSpaceRadius, string SourceKind, float OreRemaining, float MaxOre, string ItemId, IReadOnlyList Deposits); public sealed record ResourceNodeDelta( string Id, string AnchorId, string SystemId, Vector3Dto LocalPosition, float LocalSpaceRadius, string SourceKind, float OreRemaining, float MaxOre, string ItemId, IReadOnlyList Deposits); public sealed record AnchorSnapshot( string Id, string SystemId, string Kind, Vector3Dto SystemPosition, float LocalSpaceRadius, string? ParentAnchorId, string? OccupyingStructureId, string? OrbitReferenceId); public sealed record AnchorDelta( string Id, string SystemId, string Kind, Vector3Dto SystemPosition, float LocalSpaceRadius, string? ParentAnchorId, string? OccupyingStructureId, string? OrbitReferenceId); public sealed record CelestialSnapshot( string Id, string SystemId, string Kind, Vector3Dto OrbitalAnchor, float LocalSpaceRadius, string? ParentAnchorId, string? OccupyingStructureId, string? OrbitReferenceId); public sealed record CelestialDelta( string Id, string SystemId, string Kind, Vector3Dto OrbitalAnchor, float LocalSpaceRadius, string? ParentAnchorId, string? OccupyingStructureId, string? OrbitReferenceId);