namespace DragonISO.Engine.Domain;

/// <summary>
/// Operator's intent for an ISO output. Persisted to <c>config.json</c>.
///
/// <para><see cref="Override"/> is the optional per-pipeline
/// <see cref="FrameProcessingSettings"/> that takes precedence over the global
/// defaults for THIS participant only. null means "follow global settings"
/// (the common case). Non-null lets the operator run a 30 fps 720p Mixed
/// pipeline next to a 60 fps 1080p Isolated one â€” useful when downstream
/// switchers expect specific formats per source slot.</para>
/// </summary>
public sealed record IsoAssignment(
    Guid ParticipantId,
    bool IsEnabled,
    string? CustomOutputName,
    FrameProcessingSettings? Override = null);
