It is slightly more complex than the others, because it contains all of the top-level functions that define your custom, domain-specific behaviors.
The children property contains the document tree of nodes that make up the editor's content.
The selection property contains the user's current selection, if any. Don't set it directly; use Transforms.select
The operations property contains all of the operations that have been applied since the last "change" was flushed. (Since Slate batches operations up into ticks of the event loop.)
The marks property stores formatting to be applied when the editor inserts text. If marks is null, the formatting will be taken from the current selection. Don't set it directly; use Editor.addMark and Editor.removeMark.
In previous guides we've already hinted at this, but you can override any of the behaviors of an editor by overriding its function properties.
For example, if you want to define link elements that are inline nodes:
Whenever you override behaviors, be sure to call the existing functions as a fallback mechanism for the default behavior. Unless you really do want to completely remove the default behaviors (which is rarely a good idea).