Challenge 1: Inspecting a Class with KClass — Solution import kotlin.reflect.full.memberProperties data class Product(val name: String, val price: Double, val inStock: Boolean) fun describe(obj: Any) { for (prop in obj::class.memberProperties) { println("${prop.name}: ${prop.getter.call(obj)}") } } fun main() { val product = Product("Keyboard", 49.99, true) describe(product) } /* Output: name: Keyboard price: 49.99 inStock: true Notes: - obj::class.memberProperties (from kotlin.reflect.full, part of the kotlin-reflect library) returns every property declared on the object's actual runtime class. - prop.getter.call(obj) invokes that specific property's getter on the given instance, returning its value generically as Any?. - describe() works for ANY object passed to it, not just Product — it never references "name", "price", or "inStock" by name directly, which is the whole point of doing this via reflection instead of hardcoding three println() calls. */