using SpaceGame.Simulation.Api.Data; namespace SpaceGame.Simulation.Api.Simulation; public sealed class SimulationWorld { public required string Label { get; init; } public required int Seed { get; init; } public required BalanceDefinition Balance { get; init; } public required List Systems { get; init; } public required List Nodes { get; init; } public required List SpatialNodes { get; init; } public required List LocalBubbles { get; init; } public required List Stations { get; init; } public required List Ships { get; init; } public required List Factions { get; init; } public required List Commanders { get; init; } public required List Claims { get; init; } public required List ConstructionSites { get; init; } public required List MarketOrders { get; init; } public required List Policies { get; init; } public required Dictionary ShipDefinitions { get; init; } public required Dictionary ItemDefinitions { get; init; } public required Dictionary ModuleDefinitions { get; init; } public required Dictionary ModuleRecipes { get; init; } public required Dictionary Recipes { get; init; } public int TickIntervalMs { get; init; } = 200; public double OrbitalTimeSeconds { get; set; } public DateTimeOffset GeneratedAtUtc { get; set; } }