The compiler automatically derives the following members from all properties declared in the primary constructor:
.equals()/.hashCode() pair..toString() of the form "User(name=John, age=42)"..componentN() functions corresponding to the properties in their order of declaration..copy() function (see below).To ensure consistency and meaningful behavior of the generated code, data classes have to fulfill the following requirements:
val or var.