A community based topic aggregation platform built on atproto

feat(lexicon): make moderationType extensible in community.profile

- Change moderationType from closed enum to knownValues
- Add to required fields (critical before alpha - can't add required later)
- Add default value "moderator" for alpha simplicity
- Add maxLength constraint per atProto style guide

This enables future moderation types without schema migration:
- "sortition" - Community tribunal (Beta Phase 1)
- "instance-labeler" - Instance moderation service
- "third-party-labeler" - External moderation DID

Per atProto style guide: enum sets cannot be extended without breaking
schema evolution. knownValues provides flexible alternative.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>

+7 -4
+7 -4
internal/atproto/lexicon/social/coves/community/profile.json
··· 8 "key": "literal:self", 9 "record": { 10 "type": "object", 11 - "required": ["handle", "name", "createdAt", "createdBy", "hostedBy", "visibility"], 12 "properties": { 13 "handle": { 14 "type": "string", ··· 63 }, 64 "visibility": { 65 "type": "string", 66 - "enum": ["public", "unlisted", "private"], 67 "default": "public", 68 "description": "Community visibility level" 69 }, 70 "federation": { ··· 74 }, 75 "moderationType": { 76 "type": "string", 77 - "enum": ["moderator", "sortition"], 78 - "description": "Type of moderation system" 79 }, 80 "contentWarnings": { 81 "type": "array",
··· 8 "key": "literal:self", 9 "record": { 10 "type": "object", 11 + "required": ["handle", "name", "createdAt", "createdBy", "hostedBy", "visibility", "moderationType"], 12 "properties": { 13 "handle": { 14 "type": "string", ··· 63 }, 64 "visibility": { 65 "type": "string", 66 + "knownValues": ["public", "unlisted", "private"], 67 "default": "public", 68 + "maxLength": 64, 69 "description": "Community visibility level" 70 }, 71 "federation": { ··· 75 }, 76 "moderationType": { 77 "type": "string", 78 + "knownValues": ["moderator", "sortition"], 79 + "default": "moderator", 80 + "maxLength": 64, 81 + "description": "Type of moderation system (moderator=traditional moderator team, sortition=community tribunal)" 82 }, 83 "contentWarnings": { 84 "type": "array",