What are moves?

Each move changes the content of one or more fields of the board. The data structure of a moves list used by BoardGame is declared in the following DTD:

<!ELEMENT moves (person*,move*)>
<!ATTLIST moves
	game CDATA #REQUIRED
	start CDATA #IMPLIED
	susp CDATA #IMPLIED>

<!ELEMENT person (#PCDATA)>
<!ATTLIST person
	p IDREF #REQUIRED>

<!ELEMENT move (rep*,move*,comm?)>
<!ATTLIST move
	n CDATA #REQUIRED
	p IDREF #REQUIRED>

<!ELEMENT rep EMPTY>
<!ATTLIST rep
	f IDREF #REQUIRED
	p IDREF #REQUIRED>

<!ELEMENT comm (#PCDATA)>

Every moves list belongs to a certain game, which is referenced by the game attribute. Additional attributes specify when a game was started and suspended. The names of the players are given by person elements. The p attribute contains the name of the player as it is defined in the rules file, whereas the element's content shows the real name of the player. Each move is given as a move element. Variants are expressed as several moves at the same tree level. Successor moves are expressed by moves in a deeper tree level. The action of the move is define by replacements, which are pairs of fields and pieces which move onto these fields. Furthermore, each move can be commented.