Undo sounds simple until there is more than one person at the table. If I take back a move, whose move was it? Does the other player agree? What happens to the line of play we already explored?

Those questions are easier to answer if analysis is separate from the live game. Imagine a chess-like game. The players make moves A, B, and C. Someone selects the position after A to examine a different continuation. The original B and C should still be there when they return. Analysis has made a branch, not erased the game.

A game timeline with an original path A–B–C and an analysis branch from A to B1-C1.

That also means a matching board is not enough to authorize restoration. A position comparison can ignore details that matter to an exact transaction: which physical piece is which, whose seat is active, and which revision of the game is current. Two positions can look strategically equivalent while referring to different live states.

I worked on a detached action-journal model for Whale Shogi. It records complete before and after states for each move, checks the move against the game’s rules, and retains the old continuation when analysis selects an earlier point. If the journal reaches its capacity, it refuses the new entry and keeps the history it already has. Quietly deleting old branches would make the limit invisible until someone needed them.

The journal foundation is a logical model; it does not perform live undo, obtain another player’s consent, move pieces on the table, or save an analysis file. Its tests show that the model preserves branches and rejects inconsistent records; they don’t show that a player can safely rewind a running game. That next step needs a different kind of proof. A live controller would have to confirm the exact current transaction, get the required consent, preserve a recoverable physical state, and verify the result after moving anything. If any of those checks fails, it should leave the board alone and say why.

Keeping a side line should not quietly change the game everyone else is playing.

—jhunterj

Join the conversation

Your email address will not be published. Required fields are marked *