pub trait Command {
// Required methods
fn get_name(&self) -> &str;
fn get_args(&self) -> &Vec<Box<dyn Argument>>;
fn execute(&self, args: Vec<String>, values: Vec<ArgumentValue>) -> bool;
// Provided method
fn parse_args(&self, args: Vec<String>) -> Result<Vec<ArgumentValue>, Error> { ... }
}