using System.Text.Json.Serialization; namespace NeonSprawl.Server.Game.Skills; /// JSON body for GET /game/world/skill-definitions (NEO-36). public sealed class SkillDefinitionsListResponse { public const int CurrentSchemaVersion = 1; [JsonPropertyName("schemaVersion")] public int SchemaVersion { get; init; } = CurrentSchemaVersion; /// Loaded skills ordered by stable id (ordinal), matching . [JsonPropertyName("skills")] public required IReadOnlyList Skills { get; init; } } /// One row in the read-only skill definition projection. public sealed class SkillDefinitionJson { [JsonPropertyName("id")] public required string Id { get; init; } [JsonPropertyName("displayName")] public required string DisplayName { get; init; } [JsonPropertyName("category")] public required string Category { get; init; } [JsonPropertyName("allowedXpSourceKinds")] public required IReadOnlyList AllowedXpSourceKinds { get; init; } }