// Action processing.

        public void ProcessAction(UnitAdditionAction action)
        {
            if (action is null)
            {
                throw new ArgumentNullException(nameof(action));
            }
            try {
                AddUnit(action.Unit, action.Position);
            } catch (InvalidOperationException) {}
        }
 public void PlanAction(UnitAdditionAction action) => PlanAction(this, action);
        // Action planning.

        public void PlanAction(UnitAdditionAction action) => Presented.PlanAction(action);