namespace NeonSprawl.Server.Game.AbilityInput;

/// <summary>Prototype ability allowlist for NEO-29 hotbar bindings.</summary>
public static class PrototypeAbilityRegistry
{
    public const string PrototypePulse = "prototype_pulse";
    public const string PrototypeGuard = "prototype_guard";
    public const string PrototypeDash = "prototype_dash";
    public const string PrototypeBurst = "prototype_burst";

    private static readonly HashSet<string> Allowed = new(StringComparer.Ordinal)
    {
        PrototypePulse,
        PrototypeGuard,
        PrototypeDash,
        PrototypeBurst,
    };

    public static bool TryNormalizeKnown(string rawAbilityId, out string normalized)
    {
        normalized = rawAbilityId.Trim().ToLowerInvariant();
        if (normalized.Length == 0)
        {
            return false;
        }

        return Allowed.Contains(normalized);
    }
}
