I am in fact more worried that it is possible to one-sidedly end a game as a draw by entering a drawn command. Wouldn't it be better to treat that command as a draw offer, requiring that both players must enter it (in subsequent turns) before it gets executed? I can define a 'constant' lastDrawOffer, initialized to -2, which would remember the turn number where a drawn command was last received, and then only execute it when the previous value was one lower. If we want to stick to FIDE rules, the 50-move and 3-fold-repeat conditions could automatically submit the offer at the turn where it occurs, so that either player can claim, rather than immediately adjudicating the game.
I am in fact more worried that it is possible to one-sidedly end a game as a draw by entering a drawn command. Wouldn't it be better to treat that command as a draw offer, requiring that both players must enter it (in subsequent turns) before it gets executed? I can define a 'constant' lastDrawOffer, initialized to -2, which would remember the turn number where a drawn command was last received, and then only execute it when the previous value was one lower. If we want to stick to FIDE rules, the 50-move and 3-fold-repeat conditions could automatically submit the offer at the turn where it occurs, so that either player can claim, rather than immediately adjudicating the game.