@callback validate( get_json_schema :: (any(), any() -> any()), schema :: any(), opts :: any(), json :: any(), cache_key :: any() ) :: :ok | {:error, any()}