assembleForge
srg<->named via obf pivot, emitting the hybrid TSRG2 forge_gradle uses: readable class names on BOTH sides (from Mojang — MCPConfig's own srg class names are obfuscated) + f_/m_ members on the left, named members on the right. mapping-io's uniform source-switch can't express that per-element hybrid, so we take classes from named and members from srg and emit TSRG2 directly (the format is trivial).