docs: def child(self, name, data, source=None):
          """ Create or update child with given data """
          try:
              if isinstance(data, dict):
                  self.children[name].update(data)
              else:
                  self.children[name].grow(data)
          except KeyError:
              self.children[name] = Tree(data, name, parent=self)
          # Save source file
          if source is not None:
              self.children[name].sources.append(source)