using System.Text.Json; using Microsoft.Extensions.Options; namespace SpaceGame.Api.Universe.Bootstrap; public sealed class SystemTemplateLoader(IOptions staticDataOptions) { private readonly JsonSerializerOptions _jsonOptions = new() { PropertyNameCaseInsensitive = true, }; internal List Load() { var path = Path.Combine(staticDataOptions.Value.DataRoot, "systems.json"); var json = File.ReadAllText(path); return JsonSerializer.Deserialize>(json, _jsonOptions) ?? throw new InvalidOperationException("Unable to read systems.json."); } }