Package-level declarations
Types
A validated @CollectionWrapper registration: which container type it serves and which directions it provides. TypeMatcher consults the direction flags so a mapping that needs a missing direction gets a guided compile error (the wrapper counterpart of UnsupportedConversion).
Validates a @CollectionWrapper object's duck-typed contract against its forType. Kotlin has no higher-kinded types, so the shapes are conventions — compile-checked here:
Reads a converter declaration's ConverterShape from the KSP Resolver: its (S, T) type pair from the MapTypeConverter supertype — found by walking UP the superclass chain, so parameterized-converter bases (the ledger's official recipe: object PriceFormatConverter : FormattedDoubleStringConverter(digits = 2) where the abstract base extends MapTypeConverter<Double, String>) resolve too — and which directions it provides, via function-level detection of the declared overrides (most derived wins) and their @UnsupportedDirection annotations.
Which directions a converter provides, and any declared @UnsupportedDirection reasons.
Detects guaranteed-infinite mapping cycles at compile time.
Analyzes fields (constructor parameters) and extracts mapping annotations.
Determines the appropriate mapping strategy for field transformations.
Functions
Reads all @KMapperConfig.wrappers listings (in-module, works on KMP/iOS), resolves each wrapper object's @CollectionWrapper.forType, and validates the duck-typed wrap/unwrap contract via CollectionWrapperValidator to build Map