#3: Making it easier to create and modify menu states.
#3: Stubs for keyboard/controller config.
#3: Preventing exceptions from empty states.
#3: Thoughts for what needs to be implemented for keyboard/controller config