The SystemManager requires that systems added to it inherit publicly from the
System class
In the background, on the most basic level, it just adds the system to a vector of System base pointers
It's made to handle boilerplate, utilities and other quality-of-life features for systems, like multithreading or setting up the first layer of reflection that the engine provides
The SystemManager does more than just list systems. It can also handle more advanced behaviors like
Replacing Systems