namespace NeonSprawl.Server.Game.PositionState;
///
/// Binds the Game configuration section (dev player seed for local authority).
///
public sealed class GamePositionOptions
{
public const string SectionName = "Game";
/// Logical player id seeded in the in-memory store (URL-safe string).
public string DevPlayerId { get; set; } = "dev-local-1";
/// When true, maps POST …/__dev/mastery-fixture for Bruno/manual QA state setup (also enabled in Development).
public bool EnableMasteryFixtureApi { get; set; }
/// When true, maps POST /game/__dev/combat-targets-fixture to reset prototype dummy HP (also enabled in Development/Testing).
public bool EnableCombatTargetFixtureApi { get; set; }
/// When true, maps POST …/__dev/quest-fixture for Bruno/manual QA quest progress setup (also enabled in Development).
public bool EnableQuestFixtureApi { get; set; }
/// When true, maps POST /game/__dev/resource-node-fixture to reset prototype node gathers (also enabled in Development/Testing).
public bool EnableResourceNodeFixtureApi { get; set; }
/// World position for the dev player at process start.
public DefaultPositionOptions DefaultPosition { get; set; } = new();
/// NS-19: per-command step limits and optional district bounds.
public MovementValidationOptions MovementValidation { get; set; } = new();
}
/// Default spawn coordinates for the configured dev player.
public sealed class DefaultPositionOptions
{
public double X { get; set; }
public double Y { get; set; }
public double Z { get; set; }
}