using CounterStrikeSharp.API.Core; namespace Cs2SuperPowers.Players; public static class Ensure { public static ValidationBuilder Player(CCSPlayerController? player) { return new ValidationBuilder(player); } } public class ValidationBuilder(TEntity? entity) { private readonly Queue> _validations = new(); public void Add(IValidation validation) { _validations.Enqueue(validation); } public bool Check() { return _validations.All(v => v.Validate(entity)); } }