{
  "id": "type-p20",
  "revision": "d078123c999491ac9caebbb10aa967c119496d8b0c8deb145707009cb8c4c164",
  "regions": [
    {
      "id": "client",
      "label": "Client",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "model-host",
      "label": "Model host",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "agent",
      "label": "Agent read request",
      "kind": "N39",
      "region": "client",
      "ports": [
        {
          "id": "request",
          "profile": "P20",
          "contract": "DocumentationGrantRequestV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "policy",
      "label": "Documentation policy",
      "kind": "N33",
      "region": "server",
      "ports": [
        {
          "id": "request",
          "profile": "P20",
          "contract": "DocumentationGrantRequestV1",
          "polarity": "Offer"
        },
        {
          "id": "grant",
          "profile": "P20",
          "contract": "PrincipalWorkspaceReadGrantV1",
          "polarity": "Offer"
        },
        {
          "id": "receipt",
          "profile": "P24",
          "contract": "ReadDecisionReceiptV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "retrieve",
      "label": "Authorized retrieval",
      "kind": "N22",
      "region": "server",
      "ports": [
        {
          "id": "grant",
          "profile": "P20",
          "contract": "PrincipalWorkspaceReadGrantV1",
          "polarity": "Require"
        },
        {
          "id": "cut",
          "profile": "P01",
          "contract": "AuthorizedSectionCutV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "model",
      "label": "Cited answer model",
      "kind": "N18",
      "region": "model-host",
      "ports": [
        {
          "id": "context",
          "profile": "P01",
          "contract": "AuthorizedSectionCutV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "evidence",
      "label": "Access evidence",
      "kind": "N37",
      "region": "server",
      "ports": [
        {
          "id": "receipt",
          "profile": "P24",
          "contract": "ReadDecisionReceiptV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "request",
      "kind": "H05",
      "incidences": [
        {
          "node": "agent",
          "port": "request",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "policy",
          "port": "request",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "grant",
      "kind": "H23",
      "incidences": [
        {
          "node": "policy",
          "port": "grant",
          "role": "principal",
          "ordinal": 0
        },
        {
          "node": "retrieve",
          "port": "grant",
          "role": "resource",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "cut",
      "kind": "H02",
      "incidences": [
        {
          "node": "retrieve",
          "port": "cut",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "model",
          "port": "context",
          "role": "target",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "decision",
      "kind": "H27",
      "incidences": [
        {
          "node": "policy",
          "port": "receipt",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "evidence",
          "port": "receipt",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
