@schwa @chbeer What if it used similar semantics as ForEach? In some edge cases there would be a nasty switch inside of the closure, but it would be less error-prone. At least I mess it up all the time. “Tags” could be tracked by SwiftUI internally.
@schwa @chbeer I forgot that if you add ForEach inside of the Picker it does exactly that, but it is not immediately clear from the Picker interface. That nicely highlights the loose SwiftUI contract.

@mkj @schwa @chbeer I feel you, yet you don't want to require `tag` on every view or require all of them to be covariant.

Picker {
Text(“None”).foregroundStyle(.seconary).tag(0)
Divider()
Label(“Banana”, image: .banana) .tag(1)
Label(“Pineapple”, image: .pineapple) .tag(2)
}