{
  "id": "workflow-onboarding",
  "revision": "997063eb376e5f1e405f0155f0a5b9e36e96980db950c826c9e0bb7cf715c6e8",
  "regions": [
    {
      "id": "control",
      "label": "Workflow authority"
    },
    {
      "id": "participants",
      "label": "External participants"
    }
  ],
  "nodes": [
    {
      "id": "workflow",
      "label": "Onboarding workflow",
      "kind": "N06",
      "region": "control",
      "ports": [
        {
          "id": "proposal",
          "profile": "P03",
          "contract": "ReviewRequestV1",
          "polarity": "Offer"
        },
        {
          "id": "decision",
          "profile": "P03",
          "contract": "ReviewDecisionV1",
          "polarity": "Require"
        },
        {
          "id": "deadline",
          "profile": "P15",
          "contract": "DeadlineV1",
          "polarity": "Require"
        },
        {
          "id": "identity",
          "profile": "P02",
          "contract": "IdentityCreateV1",
          "polarity": "Require"
        },
        {
          "id": "state",
          "profile": "P02",
          "contract": "WorkflowCheckpointV1",
          "polarity": "Require"
        },
        {
          "id": "revision",
          "profile": "P24",
          "contract": "ProposalRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "human",
      "label": "Human approval",
      "kind": "N20",
      "region": "participants",
      "ports": [
        {
          "id": "proposal",
          "profile": "P03",
          "contract": "ReviewRequestV1",
          "polarity": "Require"
        },
        {
          "id": "decision",
          "profile": "P03",
          "contract": "ReviewDecisionV1",
          "polarity": "Offer"
        },
        {
          "id": "principal",
          "profile": "P24",
          "contract": "PrincipalRefV1",
          "polarity": "Neutral"
        }
      ]
    },
    {
      "id": "timer",
      "label": "Deadline clock",
      "kind": "N09",
      "region": "control",
      "ports": [
        {
          "id": "tick",
          "profile": "P15",
          "contract": "DeadlineV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "identity",
      "label": "Identity provider",
      "kind": "N30",
      "region": "participants",
      "ports": [
        {
          "id": "create",
          "profile": "P02",
          "contract": "IdentityCreateV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "journal",
      "label": "Checkpoint authority",
      "kind": "N21",
      "region": "control",
      "ports": [
        {
          "id": "checkpoint",
          "profile": "P02",
          "contract": "WorkflowCheckpointV1",
          "polarity": "Offer"
        }
      ]
    },
    {
      "id": "policy",
      "label": "Activation policy",
      "kind": "N33",
      "region": "control",
      "ports": [
        {
          "id": "policy",
          "profile": "P24",
          "contract": "PolicyRefV1",
          "polarity": "Neutral"
        }
      ]
    }
  ],
  "relations": [
    {
      "id": "review",
      "kind": "H02",
      "incidences": [
        {
          "node": "workflow",
          "port": "proposal",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "human",
          "port": "proposal",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "decision",
      "kind": "H02",
      "incidences": [
        {
          "node": "human",
          "port": "decision",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "workflow",
          "port": "decision",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "deadline",
      "kind": "H02",
      "incidences": [
        {
          "node": "timer",
          "port": "tick",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "workflow",
          "port": "deadline",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "identity",
      "kind": "H05",
      "incidences": [
        {
          "node": "identity",
          "port": "create",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "workflow",
          "port": "identity",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "state",
      "kind": "H05",
      "incidences": [
        {
          "node": "journal",
          "port": "checkpoint",
          "role": "provider",
          "ordinal": 0
        },
        {
          "node": "workflow",
          "port": "state",
          "role": "consumer",
          "ordinal": 0
        }
      ]
    },
    {
      "id": "approval",
      "kind": "H23",
      "incidences": [
        {
          "node": "human",
          "port": "principal",
          "role": "principal",
          "ordinal": 0
        },
        {
          "node": "workflow",
          "port": "revision",
          "role": "proposal",
          "ordinal": 1
        },
        {
          "node": "policy",
          "port": "policy",
          "role": "policy",
          "ordinal": 2
        }
      ]
    }
  ]
}
