pub fn get_provider(name: &str) -> Option<Box<dyn Provider>>
Checks custom providers first (global registry), then falls back to the data-driven built-in provider factory.