{
  "kinds": [
    "IDENTIFY",
    "REQUIREMENTS",
    "OFFER",
    "COUNTEROFFER",
    "REJECT_CONDITION",
    "ACCEPT",
    "REJECT"
  ],
  "message": [
    "schema",
    "federation_id",
    "sender",
    "receiver",
    "kind",
    "seq",
    "prev_hash",
    "epoch",
    "nonce",
    "payload",
    "sig"
  ],
  "transitions": {
    "ACCEPTED": [
      "CONTRACTED",
      "TERMINATED"
    ],
    "ACTIVE": [
      "DEGRADED",
      "CONTESTED",
      "SUSPENDED",
      "REVOKED",
      "TERMINATED"
    ],
    "CONTESTED": [
      "SUSPENDED",
      "REVOKED",
      "TERMINATED"
    ],
    "CONTRACTED": [
      "ACTIVE",
      "TERMINATED"
    ],
    "COUNTEROFFERED": [
      "NEGOTIATING",
      "ACCEPTED",
      "TERMINATED"
    ],
    "DEGRADED": [
      "SUSPENDED",
      "CONTESTED",
      "REVOKED",
      "TERMINATED"
    ],
    "DISCOVERED": [
      "IDENTIFIED",
      "TERMINATED"
    ],
    "IDENTIFIED": [
      "VERIFYING",
      "TERMINATED"
    ],
    "NEGOTIATING": [
      "COUNTEROFFERED",
      "ACCEPTED",
      "TERMINATED"
    ],
    "OFFERED": [
      "COUNTEROFFERED",
      "NEGOTIATING",
      "ACCEPTED",
      "TERMINATED"
    ],
    "REVOKED": [
      "TERMINATED"
    ],
    "SUSPENDED": [
      "REVOKED",
      "TERMINATED"
    ],
    "TERMINATED": [],
    "VERIFYING": [
      "OFFERED",
      "TERMINATED"
    ]
  }
}
