Hi,
I ran into some issues with set_piece_at, remove_piece_at, which I used in my engine code. Apparently it clears the move stack, which make sense from an integrity point of view. But I think this should be documented (and perhaps a note that the internal functions can be used, if this is unwanted behavior).