[docs]defapply_cross_field_rules(manifest:DatasetManifest,result:ValidationResult)->None:all_fields=[(field_name,field)fortableinmanifest.datasetTables.values()forfield_name,fieldintable.dataDictionary.items()]has_region_field=any(nameinREGION_FIELD_NAMESorfield.type=="regionID"forname,fieldinall_fields)has_temporal_year_field=any(field.typein{"date","dateTime"}andfield.formatand"%Y"infield.formatfor_,fieldinall_fields)ifhas_region_fieldandnothas_temporal_year_field:result.add_finding(Finding(severity="error",code="missing_temporal_context",message=("Region-bearing manifests must declare a temporal field ""with a year component."),path="datasetTables",rule_id="region_requires_year",hint=("Add a date/dateTime field using a strftime format that includes %Y, ""for example %Y or %Y-%m-%d."),))