I think this can be done along with highlighting , atleast according to the current method I am using. Since I am looking at the legal move list at the root, I can answer legality when getting the put. Also if a piece is lifted and there is only one move, I can send f.i a "singlemove a3c5,c5a7" to tell winboard to make the move immediately.This solves the problem of providing optical cues to theuser to help him pick his move. The equivalent of one-click moving is a different issue, though. If we want to make it possible for the engine to finish a move for the user, before the user is fully done entering it, perhaps we should add an engine->GUI command click SQUARE, that would cause the same event in the GUI as when the user clicked the mentioned square. (That is, up-click + down-click; the command should only be sent, and will only be accepted when the user does not have the mouse button pressed at the time.)
Intermediate leg-moves can cause problems, but I am now heavily inclined towards dumping that completely, since the current scheme sounds much simpler.
EDIT Oh I get it. Click is equivalent to the "singlemove" I was talking about. I thought "click" is going to be sent by winboard
Well that is done then.