@Serializable
data class Box<T>(val contents: T)
@Serializable
data class Data(
val a: Box<Int> = Box(42),
val b: Box<Project> = Box(Project("kotlinx.serialization", "Kotlin"))
)
@Serializable
data class Project(val name: String, val language: String)
fun main() {
val data = Data()
val data2 = Data(a = Box(39))
println(Json.encodeToString(data)) // {}
println(Json.encodeToString(data2)) // {"a":{"contents":39}}
}