{
  "id": "type-n38",
  "revision": "758feebe1681a6f23d6759beb2dc2f3153bd2986824507a54f0064384c534fc3",
  "regions": [
    {
      "id": "mobile",
      "label": "Mobile",
      "parent": null
    },
    {
      "id": "server",
      "label": "Server",
      "parent": null
    },
    {
      "id": "storage",
      "label": "Storage",
      "parent": null
    },
    {
      "id": "inspection",
      "label": "Inspection",
      "parent": null
    }
  ],
  "nodes": [
    {
      "id": "client",
      "label": "Mobile send invocation",
      "kind": "N02",
      "region": "mobile",
      "ports": [
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Require"
        },
        {
          "id": "span",
          "profile": "P24",
          "contract": "SendFlowSpanCutV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "service",
      "label": "Messaging service",
      "kind": "N19",
      "region": "server",
      "ports": [
        {
          "id": "send",
          "profile": "P02",
          "contract": "SendMessageRequestResponseV1",
          "polarity": "Offer"
        },
        {
          "id": "store",
          "profile": "P02",
          "contract": "AppendMessageAtRevisionV1",
          "polarity": "Require"
        },
        {
          "id": "span",
          "profile": "P24",
          "contract": "SendFlowSpanCutV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "store",
      "label": "Message authority",
      "kind": "N21",
      "region": "storage",
      "ports": [
        {
          "id": "append",
          "profile": "P02",
          "contract": "AppendMessageAtRevisionV1",
          "polarity": "Offer"
        },
        {
          "id": "span",
          "profile": "P24",
          "contract": "SendFlowSpanCutV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "visitor",
      "label": "End-to-end latency visitor",
      "kind": "N38",
      "region": "inspection",
      "ports": [
        {
          "id": "cut",
          "profile": "P24",
          "contract": "SendFlowSpanCutV1",
          "polarity": "Require"
        },
        {
          "id": "finding",
          "profile": "P24",
          "contract": "LatencyWithCoverageFindingV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "report",
      "label": "Latency report",
      "kind": "N37",
      "region": "inspection",
      "ports": [
        {
          "id": "finding",
          "profile": "P24",
          "contract": "LatencyWithCoverageFindingV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "send",
      "kind": "H05",
      "incidences": [
        {
          "node": "client",
          "port": "send",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "service",
          "port": "send",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "store",
      "kind": "H05",
      "incidences": [
        {
          "node": "service",
          "port": "store",
          "role": "caller",
          "ordinal": 0
        },
        {
          "node": "store",
          "port": "append",
          "role": "callee",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "observations",
      "kind": "H27",
      "incidences": [
        {
          "node": "client",
          "port": "span",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "service",
          "port": "span",
          "role": "source",
          "ordinal": 1
        },
        {
          "node": "store",
          "port": "span",
          "role": "source",
          "ordinal": 2
        },
        {
          "node": "visitor",
          "port": "cut",
          "role": "target",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "finding",
      "kind": "H02",
      "incidences": [
        {
          "node": "visitor",
          "port": "finding",
          "role": "source",
          "ordinal": 0
        },
        {
          "node": "report",
          "port": "finding",
          "role": "target",
          "ordinal": 0
        }
      ]
    }
  ]
}
