A community based topic aggregation platform built on atproto

feat(lexicon): apply atProto best practices to community lexicons

Applied atProto best practices from https://github.com/bluesky-social/atproto/discussions/4245

Changes:
- getMembers.json: Changed 'enum' to 'knownValues' for sort parameter to allow schema evolution
- profile.json: Removed 'visibility' and 'moderationType' from required fields (both have defaults)

These changes improve forward compatibility and follow atProto lexicon design guidelines
while maintaining full backward compatibility with existing code.

Impact: Zero breaking changes - all tests pass, service layer already handles defaults.

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

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

Changed files
+4 -3
internal
atproto
lexicon
social
coves
+3 -2
internal/atproto/lexicon/social/coves/community/getMembers.json
···
},
"sort": {
"type": "string",
-
"enum": ["reputation", "recent", "alphabetical"],
-
"default": "reputation"
+
"knownValues": ["reputation", "recent", "alphabetical"],
+
"default": "reputation",
+
"maxLength": 64
}
}
},
+1 -1
internal/atproto/lexicon/social/coves/community/profile.json
···
"key": "literal:self",
"record": {
"type": "object",
-
"required": ["handle", "name", "createdAt", "createdBy", "hostedBy", "visibility", "moderationType"],
+
"required": ["handle", "name", "createdAt", "createdBy", "hostedBy"],
"properties": {
"handle": {
"type": "string",