{
  "$type": "com.atproto.lexicon.schema",
  "defs": {
    "main": {
      "description": "A member's role in the group. Written by the group authority into its repo in the space, never held as app database state — this is what makes a role survive the group changing app. The simplespace member list governs access; this record governs what the member may do once inside.",
      "key": "any",
      "record": {
        "properties": {
          "createdAt": {
            "format": "datetime",
            "type": "string"
          },
          "role": {
            "description": "Roles are application-level: the protocol has no per-member write permissions (see docs/evidence/S06.md).",
            "knownValues": [
              "admin",
              "member"
            ],
            "type": "string"
          },
          "subject": {
            "format": "did",
            "type": "string"
          }
        },
        "required": [
          "subject",
          "role",
          "createdAt"
        ],
        "type": "object"
      },
      "type": "record"
    }
  },
  "id": "dk.raakode.lab.groups.membership",
  "lexicon": 1
}
