public void ProcessAction(UnitMotionAction action)
 {
     if (action is null)
     {
         throw new ArgumentNullException(nameof(action));
     }
     try {
         MoveUnit(action.Unit, action.Position);
     } catch (InvalidOperationException) {}
 }
 public void PlanAction(UnitMotionAction action) => PlanAction(this, action);
 public void PlanAction(UnitMotionAction action) => Presented.PlanAction(action);