Spot the bug in the menu snapshot

from DSLs
Kotlin 2.4.10 intermediate 4 min 1 issue to find

The built menu must remain a snapshot after its builder changes. Find the bug.

kotlin
data class Menu(val items: List<String>)

class MenuBuilder {
    private val items = mutableListOf<String>()
    fun item(name: String) { items += name }
    fun build(): Menu = Menu(items)
}

fun main() {
    val builder = MenuBuilder()
    builder.item("home")
    val menu = builder.build()
    builder.item("admin")
    println(menu.items)
}
Open in playground
Report an error