pub trait CliSpec: Parser { type Cmds: Commands; fn command(&self) -> Option<Self::Cmds> where Self: Sized; fn new() -> Self { ... } }