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>

+4 -3
+3 -2
internal/atproto/lexicon/social/coves/community/getMembers.json
··· 25 25 }, 26 26 "sort": { 27 27 "type": "string", 28 - "enum": ["reputation", "recent", "alphabetical"], 29 - "default": "reputation" 28 + "knownValues": ["reputation", "recent", "alphabetical"], 29 + "default": "reputation", 30 + "maxLength": 64 30 31 } 31 32 } 32 33 },
+1 -1
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", "moderationType"], 11 + "required": ["handle", "name", "createdAt", "createdBy", "hostedBy"], 12 12 "properties": { 13 13 "handle": { 14 14 "type": "string",