- Option A:
Subtaskgetsraw_title: Option<String>forPropertyRequirednodes (pre-marker-parsing text), used for exact matching against TOML config strings - Full recursion: rule applies to subtasks too (nested properties checked in same pass)
- Defer
subtasks_allow_cancel
- 1.
config/mod.rs— addsubtasks: Vec<String>toPropertyConfig; extendRawConfigto deserialize thesubtasksarray from[Properties.X]TOML sections - 2.
parser/mod.rs— addraw_title: Option<String>toSubtask; populate with inner quoted text forPropertyRequirednodes beforeparse_markersstrips it - 3.
rules/missing_required_subtasks/mod.rs(new, E010) — for each task/subtask: collect properties with declared subtasks, merge required strings across multiple properties, check direct children for matchingPropertyRequirednodes byraw_title, report missing; recurse into subtasks - 4.
rules/mod.rs— registerErrorCode::MissingRequiredSubtasks(E010), wire intocheck_all - 5. Tests — single property, multiple properties on same task, nested properties, subtask with property, all present (no error), some missing (error with list)