using System.Text.Json.Serialization;
namespace NeonSprawl.Server.Game.Skills;
/// JSON body for GET /game/players/{{id}}/skill-progression (NEO-37).
public sealed class SkillProgressionSnapshotResponse
{
public const int CurrentSchemaVersion = 1;
[JsonPropertyName("schemaVersion")]
public int SchemaVersion { get; init; } = CurrentSchemaVersion;
[JsonPropertyName("playerId")]
public required string PlayerId { get; init; }
/// One row per registered skill id. Consumers must treat this as unordered and key rows by — array order is not part of the public contract.
[JsonPropertyName("skills")]
public required IReadOnlyList Skills { get; init; }
}
/// XP and level for one skill before grants (defaults) or after NEO-38 persistence.
public sealed class SkillProgressionRowJson
{
[JsonPropertyName("id")]
public required string Id { get; init; }
[JsonPropertyName("xp")]
public int Xp { get; init; }
[JsonPropertyName("level")]
public int Level { get; init; }
}