pub fn order(items: Vec<PlanItem>) -> Vec<PlanItem>
Topological by dependency, then cheapest first, so blockers clear early and the large risky items inherit a healthier base.