Barebones history generation is working. The key classes, methods, and process steps have been built and integrated. There’s still a lot of functionality to fill in. For example, the event sequence is entirely random; there are no relationships between events yet.
The history generation is driven by predefined event types. Event types contain text describing the event (e.g. “[Who] arrives at [Where]”), selection criteria for the entities involved in the events, the entity attribute changes caused by the event, and potential follow-on events. Event types inherit from ScriptableObject and, as such, can be created and edited in the Unity inspector. Due to the complexity of event types, I relied heavily on Odin Inspector to make the objects easier to view and edit.
Next week, the history generation implementation continues.