Step
One step of the simulation: the step's duration paired with the input sampled for it.
Established as the context of each advancement the game loop drives — a function declaring context(step: Step) reads the current step's dt and input without threading them as arguments, and can only be called while a step is underway.