I haven't checked out Adam S's program yet, but I have been thinking about mouse-based move input. What I was thinking was:
- Drag horizontally or vertically across the piece(s) to indicate a split.
- Drag from one corner to the opposite corner to indicate a join.
- Click on pieces one at a time to indicate swaps.
- Click on a Done button (or press Enter) to complete the move.
- Or click on an Undo button (or press Backspace) to undo the last step.
Two clicks can be used in place of drag. This might be useful in case the board needs to be panned and zoomed because of tiny pieces or small screens (cell phones).