pub trait BasicGame {
// Required methods
fn get_scene(&self) -> Rc<RefCell<Scene>>;
fn get_keys(&self) -> Rc<RefCell<HashSet<u8>>>;
// Provided methods
fn update(&self, _delta_time: f64) { ... }
fn key_up(&self, _key_code: u8) { ... }
fn key_down(&self, _key_code: u8) { ... }
}