fn aggregate_parts(parts: Vec<Part>) -> AggregateExpand description
Fold a take’s parts in submission order. A failure fails the take only when no part produced words; when any part did, the take keeps them and carries the first failure to the caller, which marks the transcript truncated. A cancel is the one exception: an abandoned take keeps nothing. Any recognized part sends the take down the join path, and only a take with nothing above the floor anywhere reads as silence.