Abstract
An atomic, invertible document change. Steps are the only way documents change; every step knows how to undo itself and how to remap positions through itself.
Apply to a document. Never throws, returns a failure result instead.
Produce the step that undoes this one, given the document it applied to.
Remap a pre-step position to its post-step equivalent.
Optional
An atomic, invertible document change. Steps are the only way documents change; every step knows how to undo itself and how to remap positions through itself.