pub trait Selector {
type Component: ComponentSelector;
type Tree: TreeSelector;
type Metadata: MetadataSelector;
// Required methods
fn component(&self) -> Option<&Self::Component>;
fn tree(&self) -> Option<&Self::Tree>;
fn metadata(&self) -> Option<&Self::Metadata>;
}