FlatRemapper
Immutable mapping tables + a lazily-built immutable MC hierarchy; each eval is a plain ASM ClassRemapper. Member lookups climb owner→ancestors (super first, then interfaces) and memoize. All state is immutable or a ConcurrentHashMap memo, so many lanes may remap concurrently.
Constructors
Types
Rewrites the @Metadata proto alongside the bytecode. Sits ABOVE the ClassRemapper, so the proto handed down is already in the runtime namespace: ASM remaps an annotation's Type values and nothing else, and d1/d2 are plain strings it would pass straight through — which is what left kotlin-reflect resolving mojmap classifiers no non-mojmap runtime has, degrading to ??? or throwing with the name nowhere in the message.
Properties
Functions
cr's direct supertypes, super first then interfaces; a null super is java/lang/Object.