assembleSpigot

private fun assembleSpigot(proguard: Path, clCsrg: Path, out: Path)

Mojang proguard + BuildData's class csrg -> tiny v2 (src=named), pivoting on the obf names both sides key on. A spigot runtime is fabric's shape, not forge's: BOTH axes move. Members keep the obf names (spigot has published no -members.csrg since 1.17), so proguard alone carries that axis; classes wear spigot's OWN names — BlockPos is BlockPosition — a rename invented by spigot and derivable from no Mojang artifact, which is why the class axis needs clCsrg.

A TOP-LEVEL class with no csrg row was never renamed and keeps the name proguard's source column holds. That covers spigot's .exclude list (datagen and friends) and every class Mojang never obfuscated, MinecraftServer among them. A nested class is not like that — see the derivation below.

The obf column is named "intermediary" because that string is this pipeline's slot for "the runtime namespace" (Mappings.locateNamespaces, ScriptWeave) — not a claim that these are fabric names.