neon-sprawl/server/NeonSprawl.Server/Game/Interaction/InteractionRequest.cs

21 lines
753 B
C#

using System.Text.Json.Serialization;
namespace NeonSprawl.Server.Game.Interaction;
/// <summary>POST body for <c>POST /game/players/{{id}}/interact</c> (NS-18).</summary>
/// <remarks>
/// <c>interactableId</c> is trimmed; empty after trim → HTTP 400. Lookup is case-insensitive against lowercase registry keys.
/// </remarks>
public sealed class InteractionRequest
{
public const int CurrentSchemaVersion = 1;
/// <summary>Must be <see cref="CurrentSchemaVersion"/> for v1.</summary>
[JsonPropertyName("schemaVersion")]
public int SchemaVersion { get; init; }
/// <summary>Registry key after trim + case-insensitive match.</summary>
[JsonPropertyName("interactableId")]
public string? InteractableId { get; init; }
}