Systems/Listeners
-----------------
When game is first started, they can do some 'setup work', such as making a player draw a specific amount of cards.
Often systems only add a listener when game is started, so that it is alerted when something happens, such as a card is drawn, a resource value is changed.
Example systems:
AttackYGOSystem, AttackHearthstoneSystem (Switch between them by only changing one line of code!)
LimitedPlaysPerTurn - Can be used to limit a player to only do a specific number of actions per turn.