My take on how a game engine should be,