Chains node-type pairs into one, first answer winning (2026-08-07).
The composition registerSceneNodeTypes performs on the pairs above,
exported because an application adding its own classes performs exactly the
same one:
The two write halves fall through on different tests, and the difference
matters: a node type is a string or nothing, but §79 node data is one opaque
JSON value and null is a legitimate one — so nodeDataOf falls through on
undefined only, never on a falsy answer. That is the same rule
serializeScene applies to a writer's answer.
Chains node-type pairs into one, first answer winning (2026-08-07).
The composition registerSceneNodeTypes performs on the pairs above, exported because an application adding its own classes performs exactly the same one:
The two write halves fall through on different tests, and the difference matters: a node type is a string or nothing, but §79 node data is one opaque JSON value and
nullis a legitimate one — sonodeDataOffalls through onundefinedonly, never on a falsy answer. That is the same ruleserializeSceneapplies to a writer's answer.