{
  "invariants": [
    {
      "equals": "customer_demo",
      "pointer": "/customerId"
    }
  ],
  "steps": [
    {
      "action": "approve_refund",
      "assertions": [
        {
          "equals": true,
          "pointer": "/approved"
        }
      ],
      "dependsOn": [],
      "id": "approve",
      "maxAttempts": 3
    },
    {
      "action": "issue_refund",
      "assertions": [
        {
          "equals": 1,
          "pointer": "/refundCount"
        },
        {
          "equals": 2500,
          "pointer": "/refundedCents"
        }
      ],
      "dependsOn": [
        "approve"
      ],
      "id": "refund",
      "maxAttempts": 3
    },
    {
      "action": "close_ticket",
      "assertions": [
        {
          "equals": "closed",
          "pointer": "/ticketStatus"
        },
        {
          "equals": 1,
          "pointer": "/refundCount"
        },
        {
          "equals": 2500,
          "pointer": "/refundedCents"
        }
      ],
      "dependsOn": [
        "refund"
      ],
      "id": "close",
      "maxAttempts": 3
    }
  ],
  "workflow": "support-refund"
}
