{
  "artifactVersion": "loop.plan.artifact/v1",
  "compilerVersion": "loop.plan.compiler/v1",
  "apiVersion": "loop.plan/v1",
  "digest": "sha256:2dd02066c54fea0ad9977e0df7c9ba37bc07062ff50196346f42c0bcc7fc5cec",
  "contracts": {
    "input": [],
    "output": [],
    "state": []
  },
  "entry": {
    "nodeId": "action",
    "port": "in",
    "bindings": []
  },
  "nodes": [
    {
      "id": "action",
      "opcode": "request_approval",
      "inputPorts": [
        {
          "name": "in",
          "contract": []
        }
      ],
      "outputPorts": [
        {
          "name": "approved",
          "contract": []
        },
        {
          "name": "failed",
          "contract": []
        },
        {
          "name": "rejected",
          "contract": []
        }
      ],
      "stateEffects": {
        "reads": [],
        "writes": []
      },
      "scopePath": [],
      "config": {
        "requestApproval": {
          "assignee": {
            "segments": [
              {
                "kind": "text",
                "text": "alice"
              }
            ]
          },
          "summary": {
            "segments": [
              {
                "kind": "text",
                "text": "Approve this run"
              }
            ]
          },
          "retry": {
            "maxAttempts": 2,
            "backoffNanos": 1000000000
          }
        }
      }
    },
    {
      "id": "failure",
      "opcode": "end.failed",
      "inputPorts": [
        {
          "name": "in",
          "contract": []
        }
      ],
      "outputPorts": [],
      "stateEffects": {
        "reads": [],
        "writes": []
      },
      "scopePath": [],
      "config": {
        "end": {
          "code": "action_failed"
        }
      }
    },
    {
      "id": "success",
      "opcode": "end.succeeded",
      "inputPorts": [
        {
          "name": "in",
          "contract": []
        }
      ],
      "outputPorts": [],
      "stateEffects": {
        "reads": [],
        "writes": []
      },
      "scopePath": [],
      "config": {
        "end": {
          "code": ""
        }
      }
    }
  ],
  "edges": [
    {
      "id": "route_approved",
      "source": {
        "nodeId": "action",
        "port": "approved"
      },
      "target": {
        "nodeId": "success",
        "port": "in"
      },
      "bindings": [],
      "scopeTransitions": []
    },
    {
      "id": "route_failed",
      "source": {
        "nodeId": "action",
        "port": "failed"
      },
      "target": {
        "nodeId": "failure",
        "port": "in"
      },
      "bindings": [],
      "scopeTransitions": []
    },
    {
      "id": "route_rejected",
      "source": {
        "nodeId": "action",
        "port": "rejected"
      },
      "target": {
        "nodeId": "failure",
        "port": "in"
      },
      "bindings": [],
      "scopeTransitions": []
    }
  ],
  "scopes": []
}
