pub fn plan<M: Default>(
parts: Vec<(M, String)>,
) -> Vec<(M, String, Option<Ask>)>Expand description
What each message of a reply carries: the parts (each with the
caller’s per-message data M: a reply target, a thread, …) with every
paragraph (paragraphs) that has a marker split off as its own
message (the marker replaced by its fallback), each with its ask;
without any marker, the last one’s ask by detect. A split part’s
M goes on its first message, the rest get M::default().