SGF file format FF[5] last updated: 1999-03-19

Rephrased specifications

These are changes to the FF4 spec, which don't change the functionality. The main aim is to make the spec less game-specific and to get rid of ambiguities.

There's an extensive example on how to execute moves (B, W) and additions (AB, AW, AE).

Property:	B
Propvalue:	move
Propertytype:	move
Function:	Execute a black move. This is one of the most used properties
		in actual collections. As long as
		the given move is syntactically correct it should be executed.
		It doesn't matter if the move itself is illegal
		(e.g. recapturing a ko in a Go game).
		Have a look at how to execute a Go-move.
		B, W, and UN properties must not be mixed within a node.

Property:	W
Propvalue:	move
Propertytype:	move
Function:	Execute a white move. This is one of the most used properties
		in actual collections. As long as
		the given move is syntactically correct it should be executed.
		It doesn't matter if the move itself is illegal
		(e.g. recapturing a ko in a Go game).
		Have a look at how to execute a Go-move.
		B, W, and UN properties must not be mixed within a node.


Property:	AB
Propvalue:	list of stone
Propertytype:	setup
Function:	Add black stones to the board. This can be used to set up
		positions or problems. Adding is done by 'overwriting' the
		given point with black stones. It doesn't matter what
		was there before. Adding a stone must not trigger any rule
		specific actions, e.g. in Go GM[1]: no prisoners nor
		any other captures (e.g. suicide). Thus it's possible
		to create illegal board positions.
		Points used in stone type must be unique.

Property:	AE
Propvalue:	list of point
Propertytype:	setup
Function:	Clear the given points on the board. This can be used
		to set up positions or problems. Clearing is done by
		'overwriting' the given points, so that they contain no
		stones. It doesn't matter what was there before.
		Clearing must not trigger any rule specific actions, e.g.
		in Go GM[1]: no prisoners are taken.
		Points must be unique.

Property:	AW
Propvalue:	list of stone
Propertytype:	setup
Function:	Add white stones to the board. This can be used to set up
		positions or problems. Adding is done by 'overwriting' the
		given points with white stones. It doesn't matter what
		was there before. Adding a stone must not trigger any rule
		specific actions, e.g. in Go GM[1]: no prisoners nor
		any other captures (e.g. suicide). Thus it's possible
		to create illegal board positions.
		Points used in stone type must be unique.


Property:	V
Propvalue:	real
Propertytype:	-
Function:	Define a value for the node.
		The interpretation of particular value is game-specific.
		In Go, this is the estimated score. Positive values are
		good for black, negative values are good for white.