Método igual à classe de dados no kotlin

Eu tenho a seguinte classe de dados

data class PuzzleBoard(val board: IntArray) {
    val dimension by lazy { Math.sqrt(board.size.toDouble()).toInt() }
}

Eu li que as classes de dados no Kotlin obtêm o método equals () / hashcode () gratuitamente.

Instanciei dois objetos.

val board1 = PuzzleBoard(intArrayOf(1,2,3,4,5,6,7,8,0))
val board2 = PuzzleBoard(intArrayOf(1,2,3,4,5,6,7,8,0))

Mas ainda as seguintes declarações retornam false.

board1 == board2
board1.equals(board2)

questionAnswers(2)

yourAnswerToTheQuestion