Undo and Redo Without Rewriting Your App: The Command Pattern in TypeScript, Qt, and C++
How to retrofit undo and redo into an existing app with the Command pattern, with concrete examples in TypeScript, Qt (C++), and raw C++, plus alternatives and what the pattern actually buys you.