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/Duration 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);