SGF Support Spec for BKGo ========================= 27 March 1999 Here are the 13 property-codes that the initial release of BKGo will support; they are exactly sufficient for sending the state of a GoBoard object to a data stream. When reading an SGF stream, the parser will store *all* properties it can find, even if it doesn't understand them. When GoBoard executes a newly-contsructed GameTree, it will simply ignore unrecognized properties. Although BKGo will correctly read in and store "branches" of the SGF tree, it will *not* execute alternate branches of gameplay (i.e if a node has more than one child). For now, it will simply execute the "main" line of play by only traversing to a node's first child. Root Node Codes (for "game setup"): --------------- PW, PB -- names of the players DT -- the date GN -- GameName, i.e. filename AP, CP -- Computer application & version, Copyright info GM -- type of Game (i.e. Go, Chess, etc.) -- always "1" ! FF -- version of SGF file -- always "4" ! SZ -- size of board Game Play Codes --------------- B, W -- black/white's move, expressed in coordinates [a-s],[a-s] (or []) MN -- move number (keep our nodes numbered for future use!) C -- Comment from chat window Therefore, standard BKGo SGF output will have nine pieces of information in its "root" node (the first paragraph), and then each line will represent a new "move" node: (;FF[4] GM[1] SZ[19] AP[BKGo:0.7] CP[GnuGPL 2] GN[savegame.sgf] PW[Karl] PB[Ben] DT[1999-03-27] ;MN[1] B[fh] C[Ben: good start.] ;MN[2] W[qs] ;MN[3] B[fg] ;MN[4] W[fi] C[Karl: take that!] )