not infected and not immune should be called "susceptible".
infected but not contagious should be called "exposed".
infected and contagious should be called "infectious".
immune should be called "removed".
Maybe this states (which are mutually exclusive) should be represented by an enum.
Then the diseases updatefunction only depends on this state, and since when this state is acquired
Persons who are
Maybe this states (which are mutually exclusive) should be represented by an enum. Then the diseases updatefunction only depends on this state, and since when this state is acquired