That's only the most complicated part of the problem I could see.
The simplest way that I could see for defining a large piece for the ID would be for an area=(x,y) property defined with the piece, x being the number of spaces wide and y being the number of spaces long, and the "root" space being at the player's lower left (so Black's would be at White's upper right). The system would then limit the piece (recognizing it from the "root" space) from getting too close to the right and far edges, and keep an awareness of what's in the neighboring squares as the piece moves, especially if it's a slider. Pieces like the Wall (and Great Wall), which are asymmetrical but can rotate by moving just one end, would be handled using morph (or a variant thereof).
The icon graphic could then be expanded to fit the space (for example, on a 50x50px board a twofold piece like the Wall would be 50x100 or 100x50; the Dev would be 100x100).
Between all that and what you cited, I think it would be a couple hundred lines of code, at least. (Is there support for an "include" file?)
Is there any documentation anywhere for (or even of) the xxxTinker routine?
That's only the most complicated part of the problem I could see.
The simplest way that I could see for defining a large piece for the ID would be for an area=(x,y) property defined with the piece, x being the number of spaces wide and y being the number of spaces long, and the "root" space being at the player's lower left (so Black's would be at White's upper right). The system would then limit the piece (recognizing it from the "root" space) from getting too close to the right and far edges, and keep an awareness of what's in the neighboring squares as the piece moves, especially if it's a slider. Pieces like the Wall (and Great Wall), which are asymmetrical but can rotate by moving just one end, would be handled using morph (or a variant thereof).
The icon graphic could then be expanded to fit the space (for example, on a 50x50px board a twofold piece like the Wall would be 50x100 or 100x50; the Dev would be 100x100).
Between all that and what you cited, I think it would be a couple hundred lines of code, at least. (Is there support for an "include" file?)
Is there any documentation anywhere for (or even of) the xxxTinker routine?