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; }
}