Правильное построение второстепенных конструкторов Kotlin

Есть вот такой класс. Проблема в заключается в том, что поле popEnter и popExit являются mutable. Мне кажется, что можно сделать так чтоб они были immutable, но в случае вызова первого конструктора им присваивался null, а в случае второго нужное мне значение. Как это правильно сделать если это вообще реально?

class NavAnimation(
    @AnimatorRes @AnimRes val enter: Int,
    @AnimatorRes @AnimRes val exit: Int
) {

    var popEnter: Int? = null
        private set
    var popExit: Int? = null
        private set

    constructor(
        @AnimatorRes @AnimRes enter: Int,
        @AnimatorRes @AnimRes exit: Int,
        @AnimatorRes @AnimRes popEnter: Int,
        @AnimatorRes @AnimRes popExit: Int
    ) : this(enter, exit) {
        this.popEnter = popEnter
        this.popExit = popExit
    }
}

Ответы (1 шт):

Автор решения: IR42
class NavAnimation(
    val enter: Int,
    val exit: Int,
    val popEnter: Int?,
    val popExit: Int?
) {

    constructor(enter: Int, exit: Int) : this(enter, exit, null, null)
}
→ Ссылка