Building the sequence
Tasks are added in the order they should happen, each with a duration in minutes. The schedule is a running total: change a duration or reorder a task and every start time after it shifts to match. The sequence is strictly sequential, so the end time is always the sum of all durations added to the start time. Nothing overlaps; merge two activities that genuinely overlap into one task.