public virtual void Execute(IRobot robot, IStringResponse respond = null)
            {
                Debug.Assert(robot != null);

                if (!robot.HasAPosition)
                {
                    respond?.Write($"Robot position has not been set!");
                    return;
                }

                // validate the robot position & facing
                if (robot.Vector.Position.X != _vec.Position.X)
                {
                    respond?.Write($"Validation of robot position ({_vec.Position.X}, {_vec.Position.Y}) facing {_vec.Dir} failed.  Robot x position is {robot.Vector.Position.X}!");
                }

                if (robot.Vector.Position.Y != _vec.Position.Y)
                {
                    respond?.Write($"Validation of robot position ({_vec.Position.X}, {_vec.Position.Y}) facing {_vec.Dir} failed.  Robot y position is {robot.Vector.Position.Y}!");
                }

                if (robot.Vector.Dir != _vec.Dir)
                {
                    respond?.Write($"Validation of robot position ({_vec.Position.X}, {_vec.Position.Y}) facing {_vec.Dir} failed.  Robot is facing {robot.Vector.Dir}!");
                }
            }
            public virtual void Execute(IRobot robot, IStringResponse respond = null)
            {
                Debug.Assert(robot != null);

                if (!robot.HasAPosition)
                {
                    return;
                }

                respond?.Write($"{robot.Vector.Position.X},{robot.Vector.Position.Y},{robot.Vector.Dir.ToString().ToUpper()}");
            }