pub trait SpellAssociated {
// Required method
fn on_call(
&mut self,
state: Option<State>,
set_callback: Option<Box<dyn FnMut(State)>>,
span_log: Span,
) -> Result<(), Box<dyn Error>>;
// Provided method
fn get_span(&self) -> Span { ... }
}