using System.Collections.Immutable; namespace StellaOps.Aoc; public sealed record AocGuardOptions { private static readonly ImmutableHashSet DefaultRequiredTopLevel = new[] { "tenant", "source", "upstream", "content", "linkset", }.ToImmutableHashSet(StringComparer.OrdinalIgnoreCase); public static AocGuardOptions Default { get; } = new(); public ImmutableHashSet RequiredTopLevelFields { get; init; } = DefaultRequiredTopLevel; /// /// When true, signature metadata is required under upstream.signature. /// public bool RequireSignatureMetadata { get; init; } = true; /// /// When true, tenant must be a non-empty string. /// public bool RequireTenant { get; init; } = true; }