private void addExternalTOCItem(TOCItem item) {
		TOCItem parent = item.getParent();
		String parentID = parent == null ? null : parent.getIDAttribute();
		if (parentID == null) {
			// must be the root, since the root has no parent
			if (rootItem != null) {

				//
				// We will have equivalent items in the generated TOC files, as that is how we
				// enable merging of TOC files in the JavaHelp system.  So, multiple roots are
				// OK.
				//

				if (!item.isEquivalent(rootItem)) {
					throw new IllegalArgumentException(
						"Cannot define more than one root node:\n\t" + item +
							", but there already exists\n\t" + rootItem);
				}
			}
			else {
				rootItem = item;
			}
			return;
		}

		doAddTOCIItem(item);
	}
A class that will take in a group of help directories and create a tree of
help Table of Contents (TOC) items.  Ideally, this tree can be used to create a single
TOC document, or individual TOC documents, one for each help directory (this allows
for better modularity).
<p>
We call this class an <b>overlay</b> tree to drive home the idea that each
help directory's TOC data is put into the tree, with any duplicate paths overlayed
on top of those from other help directories.
Ghidra/Framework/Help/src/main/java/help/OverlayHelpTree.java