{
  "states": [
    "OWNER",
    "FRIEND",
    "BLOCKED"
  ],
  "traits": [],
  "readers": [
    {
      "type": "OWNER",
      "reads": "*"
    }
  ],
  "moves": [
    {
      "event": "Move",
      "from": "OUTSIDER",
      "to": "FRIEND",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "Move",
      "from": "OUTSIDER",
      "to": "BLOCKED",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "Move",
      "from": "FRIEND",
      "to": "OUTSIDER",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "Move",
      "from": "FRIEND",
      "to": "BLOCKED",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "Move",
      "from": "BLOCKED",
      "to": "FRIEND",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "Move",
      "from": "BLOCKED",
      "to": "OUTSIDER",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    }
  ],
  "grants": [],
  "transfers": [],
  "slots": [],
  "lifecycle": [
    {
      "event": "Terminate",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    }
  ],
  "customs": [
    {
      "event": "cert_revoke",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    },
    {
      "event": "cert_revoke",
      "operator": "FRIEND",
      "ops": [
        "C"
      ]
    },
    {
      "event": "invite",
      "operator": "OUTSIDER",
      "ops": [
        "C"
      ],
      "alias": "invites",
      "gate": {
        "operator": [
          "OWNER"
        ]
      }
    },
    {
      "event": "invite",
      "operator": "OWNER",
      "ops": [
        "D"
      ]
    },
    {
      "event": "message",
      "operator": "OWNER",
      "ops": [
        "D"
      ]
    },
    {
      "event": "message",
      "operator": "FRIEND",
      "ops": [
        "C"
      ]
    },
    {
      "event": "message",
      "operator": "Sender",
      "ops": [
        "U",
        "D"
      ]
    },
    {
      "event": "message",
      "operator": "BLOCKED",
      "ops": [
        "_U",
        "_D"
      ]
    },
    {
      "event": "sent",
      "operator": "OWNER",
      "ops": [
        "C",
        "U"
      ]
    },
    {
      "event": "rotate",
      "operator": "OWNER",
      "ops": [
        "C"
      ]
    }
  ],
  "init": [
    {
      "identity": "<owner_pub>",
      "state": "OWNER",
      "traits": []
    }
  ]
}
