Reflection is a language's ability to inspect code at runtime instead of compile time.
Reflection is a mechanism to introspect language constructs (classes and functions) at the runtime.
When targeting JVM platform, runtime reflection features are distributed in separate JAR:
kotlin-reflect.jar. This is done to reduce runtime size, cut unused features and make it possible to target another (like JS) platforms.