unknown here is a real boundary — the registry holds factories for many different node
variants mixed together (TextNode, TableNode, TableNode, ...); there's no single
type that fits all of them. Narrowing happens back at each built-in/plugin's own registration
site (see register-builtin-blocks.ts).
unknownhere is a real boundary — the registry holds factories for many different node variants mixed together (TextNode, TableNode