{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "Permission overrides for core Sphere actions (member management, module management, permission configuration). Published on the Sphere owner's PDS. Only non-default roles need to be specified — absent keys use the built-in defaults.",
      "key": "literal:self",
      "record": {
        "properties": {
          "disableModule": {
            "description": "Minimum role to disable modules.",
            "ref": "#role",
            "type": "ref"
          },
          "enableModule": {
            "description": "Minimum role to enable modules.",
            "ref": "#role",
            "type": "ref"
          },
          "inviteMember": {
            "description": "Minimum role to invite members.",
            "ref": "#role",
            "type": "ref"
          },
          "revokeMember": {
            "description": "Minimum role to revoke members.",
            "ref": "#role",
            "type": "ref"
          },
          "updateMemberRole": {
            "description": "Minimum role to change member roles.",
            "ref": "#role",
            "type": "ref"
          },
          "updatePermissions": {
            "description": "Minimum role to update permissions.",
            "ref": "#role",
            "type": "ref"
          }
        },
        "type": "object"
      },
      "type": "record"
    },
    "role": {
      "description": "Minimum role required to perform a core sphere action.",
      "knownValues": [
        "owner",
        "admin"
      ],
      "maxLength": 64,
      "type": "string"
    }
  },
  "id": "site.exosphere.sphere.permissions",
  "lexicon": 1
}
