Migrating everything to an FP implementation will lead to substantial improvements in the code structure, resolve all the syncing and racing issues, get rid of Futures, and lead to more flexibility in the implementation of simulations (e.g. using type classes and monadic compositionality).
We will be using Cats Effect.