namespace ErsatzTV.Application.ProgramSchedules;
///
/// The items of a schedule together with computed runtime estimates. Each item carries its own
/// (nullable — see that property for
/// the per-mode semantics), and is the sum of the items that
/// could be estimated.
///
/// The schedule items, each with a nullable DurationEstimate.
///
/// The sum of every non-null per-item estimate, i.e. a rough runtime for a single pass through the
/// estimable items. null when no item in the schedule could be estimated (for example a
/// schedule made up entirely of Flood items, or of collection types that are not aggregated).
/// Because unbounded items contribute nothing, this is a lower bound, never an exact schedule length.
///
public record ProgramScheduleItemsWithDurationViewModel(
List Items,
TimeSpan? TotalDurationEstimate);