namespace NeonSprawl.Server.Game.PositionState; /// /// HTTP JSON body for POST /game/players/{{id}}/move. Wire contract v1 (JSON); migrate to protobuf later per project contracts docs. /// /// /// Server rule (v1): authoritative position is set to immediately (snap). increments by one on each successful apply. /// Example v1 payload: /// /// {"schemaVersion":1,"target":{"x":1.5,"y":0,"z":-2}} /// /// public sealed class MoveCommandRequest { /// Schema version for this command shape; must match for the handler to accept the body. public const int CurrentSchemaVersion = 1; /// Contract version; must equal . public int SchemaVersion { get; init; } /// World-space destination the server applies (v1: exact snap). public PositionVector? Target { get; init; } }