The engine should be able to issue a feature request something like
feature movecounts=1
(Or whatever name makes sense.) Of course, if an older WinBoard/xboard does not understand this feature request, it will reject it, and the engine can either decide to pout and die, or it can muddle along the best it can with the existing protocol. Otherwise, WinBoard will accept the request and subsequently send all "time" and "otim" commands in this format:
time <centiseconds> <remaining_moves_in_period>
otim <centiseconds> <remaining_moves_in_period>
This would at least allow my engine to be fixed regarding that bug described as "plague of winboard engine" since it's also a design issue: my engine is only tracking "time" (not "otim") and the moves it did itself, not the ones for the opponent. Now force mode has it that the engine can't know which colour it is actually supposed to play and cannot properly track the moves.
And this feature would be actually of great help with this: It removes the need to track both times but one can simply just track the own time and moves and as soon as force mode is entered and left again, that extended "time" command will resync the time and moves left again. This would actually be very helpful for me, I'd really want to have this feature because otherwise, I would need to implement tracking of remaining moves for both players and since my time management code is a bit complex, simply refreshing the remaining moves with the information from that extended time command would be A LOT easier.
It might seem trivial, but it would save me and probably others (no idea how well other engines track the time especially also for the opponent) a considerable amount of time with the same result (bug is fixed).