The default child_nodes dict does not makes sense to build the Remove reliance on default arg child_nodes which is a dict.
representation of the tree,
It is unused in client code, breaks tests, and is not needed to build
the dict representation of the tree.
This also refines types on related impacted methods which helps
and is never used in client codereasoning about them.
Related to D4089