These are mostly rough thoughts on an architecture designed to make heavy use of a multithreaded model while still allowing some niceties like strictly ordered event logs. None of this has been implemented.

Overall Architecture

Ticks and Synchrony

Possible Units

Startup sequence

Possible single-process game layout