pub fn plan(catalog: &Catalog, env: &Environment) -> Result<Plan, PlanError>
Work out where a skill should go.
Returns an error only for a catalog too large to plan exhaustively.