public void Execute(Bot bot)
        {
            Position botCurrentPosition = bot.Position;
            int      direction          = bot.Direction;

            var(x, y) = CommandDirectionIds.IdToCoordinate[direction];

            var newPosition = new Position(
                x: botCurrentPosition.X + x,
                y: botCurrentPosition.Y + y);

            if (!newPosition.IsValid())
            {
                return;
            }

            var worldObject = map.Get(newPosition);

            if (IsBotCanMoveTo(worldObject))
            {
                bot.Handle(worldObject);

                bot.SetNewPosition(newPosition);
                bot.Cursor = newPosition;
            }
        }
        public void Execute(Bot bot)
        {
            var cursor = bot.Cursor;

            if (cursor is null)
            {
                return;
            }

            var worldObject = map.Get(cursor);

            bot.Handle(worldObject);
        }