Engine origin
- Tiptap (engine layer)
- ProseMirror
- SpineEditor
- Native
Engine ↔ Product
editor.chain().focus().toggleBold().run()) instead of writing transactions by hand.Plan artifact before any state changes — readable, loggable, vetoable. Tiptap's chainable commands run against the ProseMirror engine immediately.At the engine layer Tiptap delegates to ProseMirror, so this column is effectively the ProseMirror engine.
Tiptap:
editor.chain().focus().toggleBold().run();SpineEditor:
engine.dispatch({
kind: "toggleMark",
markType: "strong",
});