Serializing Kotlin data classes should be special-cased, allowing the omission of the @Refract and @RefractConstructor annotations. Special casing like this is less relevant in Java since everything is already written explicitly, however, requiring those annotations for Kotlin data classes can easily double the length of the declaration.
@RefractClass
data class Foo(val a: Int, val b: String)
vs.
@RefractClass
data class Foo @RefractConstructor constructor(@Refract val a: Int, @Refract val b: String)