flatten the ui somewhat
always capture input
list.onOptionSelected passes index and text of the selected row
use a float (-1 to 1) for joystick axis value in JoystickAxisMotionEvent