neon-sprawl/server/NeonSprawl.Server/Game/PositionState/MoveStreamRequest.cs

21 lines
930 B
C#

namespace NeonSprawl.Server.Game.PositionState;
/// <summary>
/// HTTP JSON body for <c>POST /game/players/{{id}}/move-stream</c> (NEO-22): ordered absolute
/// targets applied in one request; each leg uses the same rules as <see cref="MoveCommandRequest"/>.
/// </summary>
public sealed class MoveStreamRequest
{
/// <summary>Maximum number of targets accepted per request (inclusive).</summary>
public const int MaxTargets = 24;
/// <summary>Schema version for this contract; must match <see cref="CurrentSchemaVersion"/>.</summary>
public const int CurrentSchemaVersion = 1;
/// <summary>Contract version; must equal <see cref="CurrentSchemaVersion"/>.</summary>
public int SchemaVersion { get; init; }
/// <summary>World targets applied in order; each must pass validation from the position after the previous apply.</summary>
public IReadOnlyList<PositionVector>? Targets { get; init; }
}