code: function attachLabelAndNodes (scripts) {
    const subNames = gatherAllSubNames(scripts)
  
    return Object.keys(scripts).reduce((all, name) => {
      const s = scripts[name]
      // for pruning and colors
      s.isSub = subNames.includes(name)
      s.isExplicitSub = s.isSub && name.includes(SEP)
      s.explicitSubLevel = name.split(SEP).length - 1
      // for archy
      s.label = getLabel(s)
      s.nodes = s.subNames.map(n => scripts[n])
  
      if (s.pre) s.nodes.unshift(scripts[PRE + name])
      if (s.post) s.nodes.push(scripts[POST + name])
  
      all[name] = s
      return all
    }, {})
  }
docs: 2nd pass