ImmutableCompanion

interface ImmutableCompanion<T>

Give user another choice, like this


@Immutable // or `@Entity`, `@Embeddable`
interface Book {
    ...omit properties...

    companion object: ImmutableCompanion
}

val book = Book {
    id = 1L
    name = "Learning GraphQL"
}