{
  "record_type": "shared_contract",
  "manifest_version": "1.0.0",
  "semantic_id": "dk_datafordeler_entity_filedownload_pattern_v1",
  "scope": "entity_based_total_downloads",
  "description": "General URL and parameter pattern for standard entity-level file downloads on Datafordeler.",
  "base_endpoints": {
    "default_latest_service": "https://api.datafordeler.dk/FileDownloads/GetFile",
    "version_pinned_recommended": "https://api.datafordeler.dk/FileDownloads/v{api_version}/GetFile",
    "available_downloads": "https://api.datafordeler.dk/FileDownloads/v{api_version}/GetAvailableFileDownloads"
  },
  "canonical_query_template": {
    "url_template": "https://api.datafordeler.dk/FileDownloads/GetFile?Register={REGISTER}&LatestTotalForEntity={ENTITY}&Type={TYPE}&Format={FORMAT}&apiKey={API_KEY}",
    "required_parameters": [
      "Register",
      "LatestTotalForEntity",
      "Type",
      "Format",
      "apiKey"
    ],
    "type_values": ["current", "temporal", "bitemporal"],
    "format_values": ["GPKG", "CSV", "JSON", "GML"]
  },
  "default_policy": {
    "download_kind": "latest_total_for_entity",
    "type_preference_order": ["current", "temporal", "bitemporal"],
    "format_preference_rule": "Use GPKG if available for requested entity; otherwise use CSV. Avoid JSON for large entity-level downloads unless schema fidelity is explicitly required.",
    "version_strategy": "Pin API version in production automation to avoid breaking changes."
  },
  "format_support_by_register": [
    {"register": "BBR", "formats": ["JSON", "CSV"]},
    {"register": "CPR", "formats": ["JSON", "CSV"]},
    {"register": "DAGI", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "DAR", "formats": ["JSON", "CSV"]},
    {"register": "FIKSPUNKT", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "DHMhoejdekurver", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "DHMOprindelse", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "DS", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "CVR", "formats": ["JSON", "CSV"]},
    {"register": "EBR", "formats": ["JSON", "CSV"]},
    {"register": "VUR", "formats": ["JSON", "CSV"]},
    {"register": "EJF", "formats": ["JSON", "CSV"]},
    {"register": "GEODKV", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "MAT", "formats": ["JSON", "GPKG", "GML", "CSV"]},
    {"register": "SVR", "formats": ["JSON", "CSV"]}
  ],
  "constraints": [
    "Format support can vary per entity even if supported at register level.",
    "GPKG is supported for entities with 0 or 1 geometry; GML requires at least 1 geometry.",
    "Some registers/entities may not provide all type variants (current/temporal/bitemporal).",
    "CVR does not provide deltadownload and has special temporal behavior for selected entities."
  ],
  "recommended_execution_flow": [
    "Call GetAvailableFileDownloads to discover available files for register/entity/version.",
    "Choose latest total download for target entity and type.",
    "Apply format policy (GPKG else CSV).",
    "Download with GetFile using explicit parameters.",
    "Record GenerationNumber, GenerationTime, and PointInTime for reproducibility."
  ],
  "examples": [
    {
      "name": "CVR temporal latest total",
      "url": "https://api.datafordeler.dk/FileDownloads/GetFile?Register=CVR&LatestTotalForEntity=CVREnhed&type=temporal&format=CSV&apiKey=xxxx"
    },
    {
      "name": "DAGI current latest total in GPKG",
      "url": "https://api.datafordeler.dk/FileDownloads/GetFile?Register=DAGI&LatestTotalForEntity=Kommuneinddeling&type=current&format=GPKG&apiKey=xxxx"
    }
  ],
  "source_docs": [
    "https://confluence.sdfi.dk/pages/viewpage.action?pageId=151999753",
    "https://confluence.sdfi.dk/pages/viewpage.action?pageId=193921410"
  ],
  "inherits_from": [
    "/assets/source-manifests/datafordeler/grunddata.common.access-pattern.v1.json",
    "/assets/source-manifests/datafordeler/grunddata.common.temporal-superclass.v1.json"
  ]
}
