pub trait DiscoveryProvider: Send + Sync {
// Required methods
fn provider_name(&self) -> &'static str;
fn discover(&self) -> Result<Vec<SearchItem>, ProviderError>;
// Provided method
fn change_stamp(&self) -> Option<String> { ... }
}