/**
 * Screens - full-screen dialogs
 *
 * These compose the first level of interaction in the UI.
 *
 * There is always exactly one active screen, which is in
 * control of the entire display on which it is displayed.
 *
 * Screen activations are stacked, providing interaction depth.
 *
 */
struct screen {
	const char *name;
	void (*on_enter)(void);
	void (*on_leave)(void);
	void (*on_render)(void);
	void (*on_key_press)(void);
	void (*on_key_release)(void);
};