How should undo, snapshots, and recovery work together in a deterministic document editor?
I'm designing recovery for a nondestructive document editor and want to establish the right boundaries before the architecture becomes difficult to change. The editor has one authoritative canonical…