From the repo readme:

> Basically the experience is a simulation that
> can predict its state at different points in
> time, based on known state at other points in
> time.

Usually I start by designing structures for a simulation like that. The interface and norms end up being different than for conventional simulations, and there are a handful of different ways to approach it, which can appear to impact what's reasonable to implement later.

I have a lot of trouble with refactoring nowadays, and can also have a lot of trouble with remembering things I am not immediately looking at.

But design concerns are usually blocks: the best way to create something is to actually work on it!