adding this type of listener will subscribe the listener to
the following types of events for this board number:
type 1: board updates, moves forward and back, resignations
type 2: takeback requests, draw offers, adjourn and pause requests
type 3: kibitzes, whispers, and board says
NOTE: all types must be registered independently
the board display is updated (printed to stream) for every event
except durning traversal, in which only the final position causes
a new board to be displayed.
This constructor takes a ChessPiece on the board to move, A
Desitnation where the piece is to move to, and the ChessPiece
it is to promote to when it gets there.
GameInfo contains all the information about the players of the game,
where the game was played, what where the specific game/rule conditions
of the game including time controls.
returns a non-parseable string associated with this message, or if
an error in the parsing as occured setting the message type to
UNKNOWN_EVENT then this will contain the entire original event string.
goes to this move in the history list unexecuting or executing moves
as is necessary to reach a game state where m was the last move
executed on the board.
Returns true if the very first position on this board is the
traditional default position for this type of game; instead of
the first position being a position found in the middle of a game.
sets a non-parseable string associated with this message, or if
an error in the parsing as occured setting the message type to
UNKNOWN_EVENT then this will contain the entire original event string.