Yeah, Elm works usually better with flat models (without nested extensible records or nested fields).
Bogus data should be avoided. A simple way would be to use a Maybe Bool
for the model selection status and for isSelected
. It might be preferable though to use a custom type like:
type Selection
= Unselectable
| Unselected
| Selected