Understanding extensible records

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
3 Likes