I am inclined to go for the prefixed name, like [Variant "16x16 normal"] for Big Chess. Perhaps XBoard ideosyncracies like 'normal' and 'fischerandom' (with one 'r'!) should be replaced by 'chess' and 'chess960', though. The 'normal' so far was not a problem, because no variant tag would be written in that case, but if overridden board size would force writing it, it becomes relevant.Evert wrote:I think I'd go for "BoardSize" myself, or just do what XBoard does (I'd replace the "_" with " " though).
I am in doubt whether 'HoldingsSize' is meaningful data. It is more an XBoard display thing, which in a kludgy way affects which pieces will demote to Pawn on capture. This should already be clear from the basic rules of the variant, however, and you should be allowed to hold everything that you acquire this way. But it would be useful to indicate in some way whether piece drops are allowed at all, e.g. a Crazyhouse version of Capablanca Chess. This is not necessary info for decoding the SAN in the PGN, though. If you see drop moves, the game was apparently played with drops, if not, you don't know. But that only would be a problem for understanding why the players moved as they did, not for decoding the SAN. Similar arguments hold for the size of the promotion zone.
BUT
a non-standard board size seems to always need a FEN, for the standard opening position won't fit. And from a FEN it is pretty obvious what the board size is. So perhaps there is no need at all to piggyback it on the Variant tag?
What is a much more hairy problem is the graphical piece representation. A VariantMan tag can make the GUI associate the correct moves with each piece name, but it has no idea what pictogram to display for non-standard pieces. XBoard has the pieceToCharTable for that. And this is info that definitely does not belong in any PGN, as it is very XBoard-specific.
So if I want XBoard to do anything useful with the VariantMen tag, I must assume that the user will supply the pieceToCharTable, if there is no engine that did that. Or have XBoard make assignments itself, based on some fixed letter -> pictogram assignment, or, more cleverly, look at the moves described in the VariantMen tag, (plus the standard pieces for the mentioned variant), and have a heuristic for looking which available pictogram has standard moves that are 'most similar' to that.