32 lines
1.0 KiB
C#
32 lines
1.0 KiB
C#
using System.Text.Json.Serialization;
|
|
|
|
namespace NeonSprawl.Server.Game.Mastery;
|
|
|
|
/// <summary>POST body for <c>POST /game/players/{{id}}/__dev/mastery-fixture</c> (NEO-48 Bruno/manual QA).</summary>
|
|
public sealed class MasteryFixtureRequest
|
|
{
|
|
public const int CurrentSchemaVersion = 1;
|
|
|
|
[JsonPropertyName("schemaVersion")]
|
|
public int SchemaVersion { get; init; }
|
|
|
|
/// <summary>When true, clears all branch picks and unlocked perks for the player.</summary>
|
|
[JsonPropertyName("resetPerkState")]
|
|
public bool ResetPerkState { get; init; }
|
|
|
|
/// <summary>Absolute XP totals to set per <c>skillId</c> (omitted skills unchanged).</summary>
|
|
[JsonPropertyName("skillXp")]
|
|
public Dictionary<string, int>? SkillXp { get; init; }
|
|
}
|
|
|
|
public sealed class MasteryFixtureResponse
|
|
{
|
|
public const int CurrentSchemaVersion = 1;
|
|
|
|
[JsonPropertyName("schemaVersion")]
|
|
public int SchemaVersion { get; init; } = CurrentSchemaVersion;
|
|
|
|
[JsonPropertyName("applied")]
|
|
public bool Applied { get; init; }
|
|
}
|