pub fn parse_plan(text: &str) -> Result<Vec<Subtask>, String>
Parse a model response into footprint-annotated subtasks. Tolerant of markdown fences / preamble: tries a direct parse, then the first {...} block.
{...}