using System.Text.Json.Serialization; namespace NeonSprawl.Server.Game.Quests; /// POST body for POST /game/players/{{id}}/__dev/quest-fixture (NEO-137 Bruno/manual QA). public sealed class QuestFixtureRequest { public const int CurrentSchemaVersion = 1; [JsonPropertyName("schemaVersion")] public int SchemaVersion { get; init; } /// Quest ids to mark completed via store activate+complete (no reward delivery). [JsonPropertyName("completedQuestIds")] public IReadOnlyList CompletedQuestIds { get; init; } = []; /// Quest ids to clear from player progress (dev Bruno reset). [JsonPropertyName("resetQuestIds")] public IReadOnlyList ResetQuestIds { get; init; } = []; /// Faction ids to clear from player standing (dev Bruno reset; missing row reads as 0). [JsonPropertyName("resetFactionIds")] public IReadOnlyList ResetFactionIds { get; init; } = []; /// Contract instance ids to clear from instance, delivery, and outcome stores (dev Bruno reset). [JsonPropertyName("resetContractInstanceIds")] public IReadOnlyList ResetContractInstanceIds { get; init; } = []; } /// POST response for quest fixture apply. public sealed class QuestFixtureResponse { public bool Applied { get; init; } }