namespace VanadiumGuard.Protocol
{
/// The only actions a client may take, and only when the server says so.
public enum VerdictAction
{
/// Keep playing. The default for everything below the review threshold.
Continue = 0,
/// Show the player a message. For recoverable states, e.g. "close that tool".
Warn = 1,
/// Leave the session cleanly with a reason code. No crash, no data loss.
Disconnect = 2,
}
/// Server response to a report or heartbeat.
public sealed class Verdict
{
public VerdictAction Action { get; set; } = VerdictAction.Continue;
/// Short stable code shown to the player and logged, e.g. VG-1001.
public string? ReasonCode { get; set; }
/// Player-facing text. Deliberately vague about what was detected.
public string? PlayerMessage { get; set; }
/// Grace period before the client acts, so an in-flight report can finish.
public int DelayMs { get; set; }
}
}