using System.Collections.Immutable; namespace StellaOps.Aoc; public sealed record AocGuardResult(bool IsValid, ImmutableArray Violations) { public static AocGuardResult Success { get; } = new(true, ImmutableArray.Empty); public static AocGuardResult FromViolations(IEnumerable violations) { var array = violations.ToImmutableArray(); return array.IsDefaultOrEmpty ? Success : new(false, array); } }