#[async_trait::async_trait]
pub trait Driver: Send + Sync {
fn id(&self) -> &str;
async fn spawn(&self, cfg: SpawnConfig) -> Result<DriverHandle, DriverError>;
async fn cancel(&self, handle: &DriverHandle) -> Result<(), DriverError>;
fn capabilities(&self) -> &[Capability];
// …
}