pub trait LanguageEngine {
// Required methods
fn id(&self) -> &'static str;
fn execute(&self, payload: &ExecutionPayload) -> Result<ExecutionOutcome>;
// Provided methods
fn display_name(&self) -> &'static str { ... }
fn aliases(&self) -> &[&'static str] { ... }
fn supports_sessions(&self) -> bool { ... }
fn validate(&self) -> Result<()> { ... }
fn start_session(&self) -> Result<Box<dyn LanguageSession>> { ... }
}