orphanModuleRoots
Module-layer roots ModList never sees: JiJ jars with no mods.toml (Registrate, kfflib, commonmark...). Ones JarLocator resolves are skipped — ClasspathCollector has them.
Coverage is by FILESYSTEM IDENTITY, not path equality: one union jar is root "" via getSecureJar() and "/" via the module location — not equals, same UnionFileSystem instance. Identity comes from java.lang.module.ModuleDescriptor, never the location URI: that carries a per-launch #<n> index.