This is a huge issue for me.. in my case pushing Kotlin into a Java-only projects means starting slowly, and that means starting with using lots of data classes. It sucks really bad that in some cases they don't really provide more safety or brevity at the usage site [compared to java]. I resort to writing two versions for each data class - one mutable and the other immutable and each has a function to convert between the two. I have also written some `with`ers in cases where I only need to modify one or two properties. Still not ideal and I wish Kotlin offered more in this aspect.