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