@slibkind suggested the following updated schema:

Some of the key points were:
- "actual person" object which maps to the set of persons, vs. the "person at a time" object refers to a person at a particular time
- finitely presented, infinite
Scheduling updates:
- find the person(s) to update, and get their current "person at time" element. Add a new "person at time" element with the updated state. Set the "next" of their current "person at time" element to be the one just added.
- to implement the update, set the "actual person" 's current to be the "person at time" element that was added
- to "fast forward", set their "current" to the "next" of their current "current" and repeat until the next of their current is itself.
Any new schema must fulfill the following:
- some inheritance between simple Markov models and models with event scheduling
- the user builds models by processes and events
- events have an arbitrary number of event listeners, functions that are called with the persons experiencing the event when the delay ticks down to 0
- there is a way to specify which Obs/Attrs will have updates queued to them (dynamic) and which are static. The Ob called
State is always dynamic.
Note from 2/18/22 meeting:
dynamic attrs are linked to Person at a time, static attrs are attached to actual person.