schema/rich_document library

Classes

RichAttrs
The attrs a node in the closed vocabulary carries: textAlign on paragraph/heading, level on heading, src on image. All three live on one small value type rather than a RichNode subclass per node kind, since no node carries more than one of them.
RichDocument
A parsed rich-text document — the client's read of the ProseMirror tree TipTap/Filament's RichContentRenderer publishes as <path>.__rich.doc, alongside the flattened <path>.__rich.text a card reads instead (design spec, "Wire shape"). The sibling is absent entirely when there is nothing to convert — absence means unavailable, and every consumer falls back to the raw string; that fallback happens above this parser, which only ever sees a sibling that exists.
RichMark
A mark applied to a text node — bold, italic, link, strike, underline or code. Only link carries an attribute in the closed vocabulary (design spec), so href is the one typed extra rather than a generic bag.
RichNode
One node of the ProseMirror tree: doc, paragraph, text, heading, bulletList, orderedList, listItem, blockquote, horizontalRule, image — or a type this build does not recognise, carried through by its raw string rather than rejected (see RichDocument's doc).