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)
}