fn plan_action( unit: &Unit<'_>, action: Action, engine: &mut Engine<'_>, report: &Reporter<'_>, ) -> Result<AppliedPlan, Refused>