A community based topic aggregation platform built on atproto

refactor: update lexicon to use .community. naming convention

Update AT Protocol lexicon schema and test data to use singular
.community. instead of .communities. in handle format.

Changes:
- Update profile.json lexicon schema with new handle pattern
- Update test fixtures to use singular convention
- Update lexicon validation tests

This aligns with AT Protocol naming standards where all record types
use singular form (e.g., app.bsky.feed.post, app.bsky.graph.follow).

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

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

Changed files
+3 -3
internal
atproto
lexicon
social
coves
community
tests
lexicon-test-data
community
+1 -1
internal/atproto/lexicon/social/coves/community/profile.json
···
"type": "string",
"maxLength": 253,
"format": "handle",
-
"description": "atProto handle (e.g., gaming.communities.coves.social) - DNS-resolvable name for this community"
+
"description": "atProto handle (e.g., gaming.community.coves.social) - DNS-resolvable name for this community"
},
"name": {
"type": "string",
+1 -1
tests/lexicon-test-data/community/profile-valid.json
···
{
"$type": "social.coves.community.profile",
-
"handle": "programming.communities.coves.social",
+
"handle": "programming.community.coves.social",
"name": "programming",
"displayName": "Programming Community",
"description": "A community for programmers",
+1 -1
tests/lexicon_validation_test.go
···
recordType: "social.coves.community.profile",
recordData: map[string]interface{}{
"$type": "social.coves.community.profile",
-
"handle": "programming.communities.coves.social",
+
"handle": "programming.community.coves.social",
"name": "programming",
"displayName": "Programming Community",
"createdBy": "did:plc:creator123",