pub trait ControllerPlugin: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn init(&self) -> Result<(), ControllerPluginError>;
fn load(
&self,
game_controller: Arc<dyn GameControllerTrait>,
) -> Result<(), ControllerPluginError>;
fn unload(
&self,
game_controller: Arc<dyn GameControllerTrait>,
) -> Result<(), ControllerPluginError>;
}