Optional ReadonlyblockClose condition for the current block. The paragraph parser calls it to decide when to stop collecting inline content.
Optional ReadonlydivBudget for div nesting: tracks how many more nested divs can open.
Optional ReadonlyexcludedBlock names excluded from paragraph-boundary detection.
ReadonlyfootnoteUsed by the footnote-block rule to reject duplicate top-level occurrences.
Scope is per spread copy of ParseContext, not document-global. This keeps
the original primitive semantics while avoiding rollback-unsafe shared state.
Optional ReadonlyinlineExclusive token boundary inherited by nested inline rules.
Optional ReadonlysuppressKeep bare addresses as text inside an existing anchor.
Optional ReadonlytableClosing delimiters paired across cells of the current pipe table.
Per-scope state propagated by spread + override semantics.
Every field is
readonlyso a rule cannot accidentally mutate the parent scope by writing through a shared reference. Updates must be expressed as a replacement:ctx.scope = { ...ctx.scope, X: ... }.