code: func (n *metadataNode) child(name string) *metadataNode {
  	if c, ok := n.children[name]; ok {
  		return c
  	}
  	n.assertNonFrozen()
  	if n.children == nil {
  		n.children = make(map[string]*metadataNode, 1)
  	}
  	c := &metadataNode{
  		parent: n,
  		acls:   make([]*packageACL, len(legacyRoles)),
  	}
  	if n.prefix == "" {
  		c.prefix = name
  	} else {
  		c.prefix = n.prefix + "/" + name
  	}
  	n.children[name] = c
  	return c
  }
docs: // child returns a direct child node, creating it if necessary.