Closed herzbube closed 3 years ago
SGFC has an enumeration token
that contains the following elements that are not part of FF4:
TKN_CH, TKN_SI, TKN_BS, TKN_WS, TKN_ID, TKN_TC, TKN_OM, TKN_OP,
TKN_OV, TKN_LT, TKN_RG, TKN_SC, TKN_SE, TKN_EL, TKN_EX
Two elements are from FF1/FF2 but are not documented as such:
TKN_L
TKN_M
Four elements are from FF4 but are specific for game type Go:
TKN_HA
TKN_KM
TKN_TB
TKN_TW
One element is for a non-standard application-specific property:
TKN_KI
SGFC performs the following conversions and passes on the converted properties to libsgfc++:
L
to LB
M
to MA
KI
to KM
The other properties listed in the previous comment are not converted and passed on to libsgfc++ without change.
Decision: libsgfc++ supports the same property set as SGFC, i.e. it continues to support pre-FF4 properties. Library clients that do not wish to see pre-FF4 properties can use SgfcArgumentType::DeleteObsoleteProperties
when reading in SGF content.
SGFC converts to FF4 automatically, and writes FF4 only. A case can be made from this that the library should only support FF4 properties.
What would this mean for the current implementation?
SgfcPropertyType
enumeration contains not only game-specific properties, it also contains pre-FF4 properties.