pub fn plan(input: &PlanInput<'_>) -> Result<Plan, PlanError>
Uninstalls always come first, because the style packages ship identical paths and the other order would delete what was just written.