pub type RefinePredicate = Box<dyn Fn(&Value) -> Result<(), String> + Send + Sync>;
Ok(()) passes; Err(msg) surfaces a single root-level error.
Ok(())
Err(msg)
pub struct RefinePredicate(/* private fields */);