Package-level declarations
Intermediate representation (IR) models and transformers.
Types
Abstract base class for implementing type graph transformations into target schema formats.
A TypeId split into its declaration and the type arguments it is applied to, see appliedTypeId.
Functional interface describing a strategy for extracting a property/type description from a list of annotations associated with it. It's used to allow custom description annotations.
Utility object for annotation-based introspection, providing methods to process annotations for descriptions, ignore markers, and name overrides.
A named type node.
Object node with named properties.
Polymorphic node for sealed/open hierarchies.
Primitive kinds supported by the IR.
Primitive node.
The value attached to a Property: nothing, an unknown default, a default literal, or a constant.
A facade for building TypeGraph from a particular source (e.g. KSP or Serialization).
Reference to a subtype in a polymorphic hierarchy.
Converts a TypeGraph intermediate representation to a target schema format.
Functions
Returns the TypeId of declaration applied to arguments, such as pkg.Box<kotlin.String,kotlin.Int?>.
Returns whether this property must be present under the base presence rule: constants always are, otherwise it is unless it is Property.optional or has a known default.
Parses this id as built by appliedTypeId; returns null if it is not well-formed.
Converts this literal to the equivalent Kotlin value (Long, Double, String, List, Map, ...).
Returns a copy of this TypeNode with the specified description.
Returns a copy of this TypeRef with the specified nullable flag. Shared across introspection front ends (reflection, KSP, APT, kotlinx.serialization) so conventions layered on top of native nullability (e.g. @Nullable-style annotations, type-name patterns) all go through the same code path.