pub trait Plugin: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn version(&self) -> &str;
fn description(&self) -> &str;
fn plugin_type(&self) -> PluginType;
fn initialize(&mut self, config: &Value) -> PluginResult<()>;
fn cleanup(&mut self) -> PluginResult<()>;
fn get_capabilities(&self) -> Vec<String>;
fn execute(&self, command: &str, args: &Value) -> PluginResult<Value>;
}