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