I think roles are as follow
inputs - do something when detect any input may be pressed some key or any other input sensor example movement by pressing w,a,s,d or arraw keys.
collisions - do something when a specific object collisions with an other specific object example disappear enemies when bullet collides and even user’s finger touch collides with some specific object in game.
change in object’s properties - do something when a specific property of a specific object is changed to some value or any other logic like greater than or less than example when user’s health is zero then game over.
Time - do something at a specific time or any logic like after few seconds…etc example display new enemies after every 5 seconds.
By combining those roles i think we can achieve every possible game logic for example when user reached at a specific place then after 5 seconds create an enemy.
Is my roles enough to make every game or did i miss something ?