use engine::{Context, Frame};
use ui::{Ui, UiBuilder};
use input::Event;
pub trait Game {
type Action;
fn new(context: &Context, ui_builder: &mut UiBuilder) -> Self;
fn on_event(&self, context: &Context, event: Event) -> Option<Self::Action>;
fn on_action(&mut self, context: &Context, action: Self::Action);
fn on_ui(&mut self, ui: &mut Ui) -> Vec<Self::Action>;
fn draw(&self, frame: &mut Frame);
}