{
  "record_type": "shared_contract",
  "manifest_version": "1.0.0",
  "semantic_id": "dk_grunddata_common_access_pattern_v1",
  "scope": "all_grunddatamodellen_registers",
  "access_modes": [
    {
      "mode": "graphql",
      "recommended_when": [
        "hard filters are known early",
        "specific fields are required",
        "early reduction of result volume is important"
      ],
      "typical_strength": "targeted extraction",
      "typical_cost": "query design complexity"
    },
    {
      "mode": "filedownload",
      "recommended_when": [
        "broad snapshot extraction is needed",
        "hard filters are not known early",
        "local join pipeline is available"
      ],
      "typical_strength": "fast bulk extraction",
      "typical_cost": "entity-join reconstruction work"
    }
  ],
  "shared_workflow": [
    "declare temporal mode before extraction",
    "choose GraphQL or filedownload based on filter strategy",
    "reconstruct normalized entities into analysis model",
    "run quality gates for joins and temporal assumptions"
  ],
  "quality_gates": [
    "temporal mode is explicitly documented",
    "join coverage and match rates are reported",
    "duplicates from one-to-many joins are controlled",
    "status filtering assumptions are recorded"
  ],
  "inherits_from": [
    "/assets/source-manifests/datafordeler/grunddata.common.temporal-superclass.v1.json"
  ]
}
