code: function getBoardAfterMove(board, move) {
      const from = Board.getPositionFromBoard(board, move.from);
      return Board.mapBoard(board, p => {
          const { x, y, isBlack } = p;
          if (Position.hasSameXY(from, p))
              return { x, y, lastMove: true };
          if (Position.hasSameXY(move.to, p))
              return { x, y, isBlack: from.isBlack, lastMove: true };
          if (Position.hasPiece(p))
              return { x, y, isBlack };
          if (Position.containsXY(move.to.jumps, p))
              return { x, y, lastMoveJump: true };
          return { x, y };
      });
  }
docs: Get board after move, return a new board with:
  - From: Remove piece and add .lastMove: true
  - To: Set piece from move.from and add .lastMove: true
  - Jumps: Create jump breadcrumb by setting .lastMoveJump: true