Registers node in the document, optionally as a root, and returns it.
node
root
NodeSpec addNode(NodeSpec node, {bool root = false}) { nodes[node.id] = node; if (root) roots.add(node.id); return node; }