pub trait Camera { // Required methods fn matrix(&self, w: f32, h: f32) -> Mat4; fn depth(&self) -> bool; // Provided method fn position(&self) -> Option<Vec3> { ... } }