pub trait Plugin: Send {
// Required methods
fn on_state_change(&self, event: WorkflowStateEvent);
fn on_log(&self, log: WorkflowLog);
fn on_run_workflow(&self, workflow: Workflow);
fn on_run_job(&self, job: Job);
fn on_run_step(&self, step: Step);
fn on_workflow_completed(&self, result: WorkflowRunResult);
fn on_job_completed(&self, result: JobRunResult);
fn on_step_completed(&self, result: StepRunResult);
}