Editor
A WYSIWYG editor written in TypeScript and built on its own document engine. Documents are structured data, not loose HTML, so what you save is what you load back.
Nodes, marks, commands and plugin options take their types from the definitions you register. If a plugin adds a command, your editor instance knows its name and its arguments. Data that crosses a boundary, such as a paste, an import or a server response, is checked again at runtime.