Your question is State Machine for Undo/Redo. Take a moment with it on the right.
Talk me through your thinking if you like. When you're confident, submit your answer and I'll grade it like a real screen (7/10 or better passes).
How do you structure a local state machine to handle complex user interactions, such as an undo/redo queue, in a grid-based game or interface?