unified upstream and flow-ref error contracts
- Every tool and the
oecd://dataflow/{agency_id}/{flow_id}resource declaredata.reasonanddata.recovery.hintfor OECD upstream failures via a sharedupstreamRefusal()reader (#29) oecd_get_dimension_valuesand the dataflow resource report an unparseableflow_refasinvalid_flow_ref(ValidationError) instead ofdataflow_not_found/ a bareNotFound(#27, #28)upstream_errorno longer declaresretryable—data.retryableis omitted rather than sent astrueoecd_list_agenciesandoecd_search_datasetsno longer restate every remaining failure asupstream_error; undeclared codes now bubble as themselves