I'd like to introduce a new extension to KotlinX Serialization: Mirror!
https://github.com/lightningkite/mirror-kotlin
It's an independent plugin for KotlinX Serialization that also adds some reflective functionality.
Polymorphism works for all platforms, and annotations have been entirely replaced with a manifest file.
The plugin can also read directly from your common dependencies, allowing you to easily serialize things from your libraries as well.