Kotlinx Serialization, inlining sealed class/interface
With a structure similar to the following:
@Serializable
sealed class Parameters
@Serializable
data class StringContainer(val value: String): Parameters()
@Serializable
data class IntContainer(val value: Int): Parameters()
@Serializable
data class MapContainer(val value: Map): Parameters()
// more such as list, bool and other fairly (in the context) straight forward types
And the following container class:
@Serializable
data class PluginConfiguration(
// other value
val parameters:...