Modeling players in a board game

I’d go for a custom type, even if it is more verbose.

type Players
    = OnePlayer Player
    | TwoPlayers Player Player
    | ...

Maybe an Int is okay to store whose turn it is, because you can use turn |> modBy amountOfPlayers.

type alias Game =
    { players : Players
    , turn : Int
    }

I guess all approaches have tradeoffs, I personally like to make impossible states impossible, but sometimes it’s worth giving up some guarantees :slight_smile: