{
  "id": "workflow-reconciliation",
  "revision": "87300dbef73781c33e93f67d18576c9e6749e83c2908017c9540af530bba1300",
  "regions": [
    {
      "id": "control",
      "label": "Workflow authority"
    },
    {
      "id": "participants",
      "label": "External participants"
    }
  ],
  "nodes": [
    {
      "id": "run",
      "label": "Reconciliation workflow",
      "kind": "N06",
      "region": "control",
      "ports": [
        {
          "id": "findings",
          "profile": "P01",
          "contract": "MismatchSetV1",
          "polarity": "Require"
        },
        {
          "id": "proposal",
          "profile": "P03",
          "contract": "ResolutionProposalV1",
          "polarity": "Offer"
        },
        {
          "id": "receipt",
          "profile": "P24",
          "contract": "ReconciliationReceiptV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "bank",
      "label": "Payment statement source",
      "kind": "N30",
      "region": "participants",
      "ports": [
        {
          "id": "statement",
          "profile": "P01",
          "contract": "StatementV1",
          "polarity": "Offer"
        },
        {
          "id": "cut",
          "profile": "P24",
          "contract": "SourceCutV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "ledger",
      "label": "Internal settlement ledger",
      "kind": "N21",
      "region": "control",
      "ports": [
        {
          "id": "snapshot",
          "profile": "P01",
          "contract": "SettlementSnapshotV1",
          "polarity": "Offer"
        },
        {
          "id": "cut",
          "profile": "P24",
          "contract": "SourceCutV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "join",
      "label": "Temporal join",
      "kind": "N07",
      "region": "control",
      "ports": [
        {
          "id": "external",
          "profile": "P01",
          "contract": "StatementV1",
          "polarity": "Require"
        },
        {
          "id": "internal",
          "profile": "P01",
          "contract": "SettlementSnapshotV1",
          "polarity": "Require"
        },
        {
          "id": "findings",
          "profile": "P01",
          "contract": "MismatchSetV1",
          "polarity": "Offer"
        },
        {
          "id": "window",
          "profile": "P24",
          "contract": "WindowSpecV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "review",
      "label": "Exception review",
      "kind": "N20",
      "region": "participants",
      "ports": [
        {
          "id": "proposal",
          "profile": "P03",
          "contract": "ResolutionProposalV1",
          "polarity": "Require"
        }
      ]
    },
    {
      "id": "receipt",
      "label": "Reconciliation evidence",
      "kind": "N37",
      "region": "control",
      "ports": [
        {
          "id": "input",
          "profile": "P24",
          "contract": "ReconciliationReceiptV1",
          "polarity": "Require"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "statement",
      "kind": "H02",
      "incidences": [
        {
          "node": "bank",
          "port": "statement",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "join",
          "port": "external",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "ledger",
      "kind": "H02",
      "incidences": [
        {
          "node": "ledger",
          "port": "snapshot",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "join",
          "port": "internal",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "mismatch",
      "kind": "H02",
      "incidences": [
        {
          "node": "join",
          "port": "findings",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "run",
          "port": "findings",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "review",
      "kind": "H02",
      "incidences": [
        {
          "node": "run",
          "port": "proposal",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "review",
          "port": "proposal",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "evidence",
      "kind": "H27",
      "incidences": [
        {
          "node": "run",
          "port": "receipt",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "receipt",
          "port": "input",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "cut",
      "kind": "H11",
      "incidences": [
        {
          "node": "bank",
          "port": "cut",
          "role": "external",
          "ordinal": 0
        },
        {
          "node": "ledger",
          "port": "cut",
          "role": "internal",
          "ordinal": 1
        },
        {
          "node": "join",
          "port": "window",
          "role": "join",
          "ordinal": 2
        }
      ]
    }
  ]
}
