namespace SVSim.EmulatedEntrypoint.Security.SteamSessionAuthentication;
///
/// Auth tuple extracted from the decrypted msgpack request body BEFORE it gets pivoted into
/// the action's typed DTO. Stashed into HttpContext.Items under
/// by ShadowverseTranslationMiddleware so SteamSessionAuthenticationHandler can
/// read the ticket without depending on the DTO modelling these fields.
///
/// History: see docs/superpowers/specs/2026-06-02-baseRequest-auth-footgun-improvement.md.
/// The pre-existing route required every authed DTO to inherit BaseRequest (otherwise
/// the msgpack→DTO→JSON pivot dropped the auth fields and the handler silently 401'd live).
/// Surfacing the fields via a separate channel decouples auth from DTO shape entirely.
///
public sealed class AuthFields
{
/// Items key under which the middleware stashes / the handler reads the auth tuple.
public const string ContextKey = "SVSim.AuthFields";
public string? ViewerId { get; init; }
public ulong SteamId { get; init; }
public string? SteamSessionTicket { get; init; }
}