diff --git a/internal/atproto/lexicon/social/coves/community/defs.json b/internal/atproto/lexicon/social/coves/community/defs.json index d362786..b7b765e 100644 --- a/internal/atproto/lexicon/social/coves/community/defs.json +++ b/internal/atproto/lexicon/social/coves/community/defs.json @@ -20,6 +20,7 @@ "name": { "type": "string", "maxLength": 64, + "maxGraphemes": 64, "description": "Short community name" }, "displayName": { @@ -87,6 +88,7 @@ "name": { "type": "string", "maxLength": 64, + "maxGraphemes": 64, "description": "Short community name" }, "displayName": { diff --git a/internal/atproto/lexicon/social/coves/community/post/get.json b/internal/atproto/lexicon/social/coves/community/post/get.json index ea07d57..5e0f135 100644 --- a/internal/atproto/lexicon/social/coves/community/post/get.json +++ b/internal/atproto/lexicon/social/coves/community/post/get.json @@ -189,7 +189,7 @@ }, "blockedBy": { "type": "string", - "enum": ["author", "community", "moderator"], + "knownValues": ["author", "community", "moderator"], "description": "What caused the block: viewer blocked author, viewer blocked community, or post was removed by moderators" }, "author": { @@ -266,7 +266,7 @@ "properties": { "vote": { "type": "string", - "enum": ["up", "down"], + "knownValues": ["up", "down"], "description": "Viewer's vote on this post" }, "voteUri": { diff --git a/internal/atproto/lexicon/social/coves/community/post/search.json b/internal/atproto/lexicon/social/coves/community/post/search.json index 987f2a6..2b45cec 100644 --- a/internal/atproto/lexicon/social/coves/community/post/search.json +++ b/internal/atproto/lexicon/social/coves/community/post/search.json @@ -25,7 +25,7 @@ }, "type": { "type": "string", - "enum": ["text", "image", "video", "article", "microblog"], + "knownValues": ["text", "image", "video", "article", "microblog"], "description": "Filter by post type" }, "tags": { @@ -37,12 +37,12 @@ }, "sort": { "type": "string", - "enum": ["relevance", "new", "top"], + "knownValues": ["relevance", "new", "top"], "default": "relevance" }, "timeframe": { "type": "string", - "enum": ["hour", "day", "week", "month", "year", "all"], + "knownValues": ["hour", "day", "week", "month", "year", "all"], "default": "all" }, "limit": { diff --git a/internal/atproto/lexicon/social/coves/community/post/update.json b/internal/atproto/lexicon/social/coves/community/post/update.json index 101eee3..279377b 100644 --- a/internal/atproto/lexicon/social/coves/community/post/update.json +++ b/internal/atproto/lexicon/social/coves/community/post/update.json @@ -25,6 +25,7 @@ "content": { "type": "string", "maxLength": 50000, + "maxGraphemes": 20000, "description": "Updated content - main text for text posts, description for media, etc." }, "facets": { @@ -72,6 +73,7 @@ "editNote": { "type": "string", "maxLength": 300, + "maxGraphemes": 300, "description": "Optional note explaining the edit" } } diff --git a/internal/atproto/lexicon/social/coves/community/profile.json b/internal/atproto/lexicon/social/coves/community/profile.json index dac2a27..b12fa3c 100644 --- a/internal/atproto/lexicon/social/coves/community/profile.json +++ b/internal/atproto/lexicon/social/coves/community/profile.json @@ -13,6 +13,7 @@ "name": { "type": "string", "maxLength": 64, + "maxGraphemes": 64, "description": "Short community name (local part of handle)" }, "displayName": { diff --git a/internal/atproto/lexicon/social/coves/community/search.json b/internal/atproto/lexicon/social/coves/community/search.json index 98b203a..7b9862e 100644 --- a/internal/atproto/lexicon/social/coves/community/search.json +++ b/internal/atproto/lexicon/social/coves/community/search.json @@ -43,7 +43,7 @@ "type": "array", "items": { "type": "ref", - "ref": "social.coves.community.list#communityView" + "ref": "social.coves.community.defs#communityView" } }, "cursor": { diff --git a/internal/atproto/lexicon/social/coves/embed/external.json b/internal/atproto/lexicon/social/coves/embed/external.json index a882740..ab50d87 100644 --- a/internal/atproto/lexicon/social/coves/embed/external.json +++ b/internal/atproto/lexicon/social/coves/embed/external.json @@ -15,11 +15,13 @@ "title": { "type": "string", "maxLength": 500, + "maxGraphemes": 500, "description": "Title of the linked content" }, "description": { "type": "string", "maxLength": 1000, + "maxGraphemes": 1000, "description": "Description or excerpt of the linked content" }, "thumb": { @@ -34,7 +36,7 @@ }, "embedType": { "type": "string", - "enum": ["article", "image", "video-stream"], + "knownValues": ["article", "image", "video-stream"], "description": "Type hint for special handling of known providers" }, "provider": { diff --git a/internal/atproto/lexicon/social/coves/embed/images.json b/internal/atproto/lexicon/social/coves/embed/images.json index 130276b..4d58bf9 100644 --- a/internal/atproto/lexicon/social/coves/embed/images.json +++ b/internal/atproto/lexicon/social/coves/embed/images.json @@ -33,6 +33,7 @@ "alt": { "type": "string", "maxLength": 1000, + "maxGraphemes": 1000, "description": "Alt text for accessibility" }, "aspectRatio": { diff --git a/internal/atproto/lexicon/social/coves/embed/video.json b/internal/atproto/lexicon/social/coves/embed/video.json index f1f6f5b..d41d24a 100644 --- a/internal/atproto/lexicon/social/coves/embed/video.json +++ b/internal/atproto/lexicon/social/coves/embed/video.json @@ -22,16 +22,13 @@ "alt": { "type": "string", "maxLength": 1000, + "maxGraphemes": 1000, "description": "Alt text describing video content" }, "duration": { "type": "integer", "minimum": 0, "description": "Duration in seconds" - }, - "aspectRatio": { - "type": "ref", - "ref": "social.coves.embed.image#aspectRatio" } } } diff --git a/internal/atproto/lexicon/social/coves/federation/post.json b/internal/atproto/lexicon/social/coves/federation/post.json deleted file mode 100644 index ee30232..0000000 --- a/internal/atproto/lexicon/social/coves/federation/post.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "lexicon": 1, - "id": "social.coves.federation.post", - "defs": { - "main": { - "type": "object", - "description": "Reference to original federated post", - "required": ["platform", "uri"], - "properties": { - "platform": { - "type": "string", - "knownValues": ["bluesky", "lemmy", "atproto"], - "description": "Platform the post originated from" - }, - "uri": { - "type": "string", - "format": "uri", - "description": "Original URI of the post (at:// URI for atproto platforms)" - }, - "id": { - "type": "string", - "description": "Platform-specific post ID" - }, - "originalCreatedAt": { - "type": "string", - "format": "datetime", - "description": "Timestamp when originally posted on source platform" - } - } - } - } -} \ No newline at end of file diff --git a/internal/atproto/lexicon/social/coves/feed/getAll.json b/internal/atproto/lexicon/social/coves/feed/getAll.json index 27fec68..32dc6bf 100644 --- a/internal/atproto/lexicon/social/coves/feed/getAll.json +++ b/internal/atproto/lexicon/social/coves/feed/getAll.json @@ -10,26 +10,26 @@ "properties": { "sort": { "type": "string", - "enum": ["hot", "top", "new"], + "knownValues": ["hot", "top", "new"], "default": "hot", "description": "Sort order for global feed" }, "postType": { "type": "string", - "enum": ["text", "article", "image", "video", "microblog"], + "knownValues": ["text", "article", "image", "video", "microblog"], "description": "Filter by a single post type (computed from embed structure)" }, "postTypes": { "type": "array", "items": { "type": "string", - "enum": ["text", "article", "image", "video", "microblog"] + "knownValues": ["text", "article", "image", "video", "microblog"] }, "description": "Filter by multiple post types (computed from embed structure)" }, "timeframe": { "type": "string", - "enum": ["hour", "day", "week", "month", "year", "all"], + "knownValues": ["hour", "day", "week", "month", "year", "all"], "default": "day", "description": "Timeframe for top sorting (only applies when sort=top)" }, @@ -54,7 +54,7 @@ "type": "array", "items": { "type": "ref", - "ref": "social.coves.feed.getTimeline#feedViewPost" + "ref": "social.coves.feed.defs#feedViewPost" } }, "cursor": { diff --git a/internal/atproto/lexicon/social/coves/feed/getCommunity.json b/internal/atproto/lexicon/social/coves/feed/getCommunity.json index a0e1d40..6620403 100644 --- a/internal/atproto/lexicon/social/coves/feed/getCommunity.json +++ b/internal/atproto/lexicon/social/coves/feed/getCommunity.json @@ -16,13 +16,13 @@ }, "sort": { "type": "string", - "enum": ["hot", "top", "new"], + "knownValues": ["hot", "top", "new"], "default": "hot", "description": "Sort order for community feed" }, "timeframe": { "type": "string", - "enum": ["hour", "day", "week", "month", "year", "all"], + "knownValues": ["hour", "day", "week", "month", "year", "all"], "default": "day", "description": "Timeframe for top sorting (only applies when sort=top)" }, @@ -47,7 +47,7 @@ "type": "array", "items": { "type": "ref", - "ref": "social.coves.feed.getTimeline#feedViewPost" + "ref": "social.coves.feed.defs#feedViewPost" } }, "cursor": { diff --git a/internal/atproto/lexicon/social/coves/feed/getDiscover.json b/internal/atproto/lexicon/social/coves/feed/getDiscover.json index f86b0c4..898cc6d 100644 --- a/internal/atproto/lexicon/social/coves/feed/getDiscover.json +++ b/internal/atproto/lexicon/social/coves/feed/getDiscover.json @@ -10,13 +10,13 @@ "properties": { "sort": { "type": "string", - "enum": ["hot", "top", "new"], + "knownValues": ["hot", "top", "new"], "default": "hot", "description": "Sort order for discover feed" }, "timeframe": { "type": "string", - "enum": ["hour", "day", "week", "month", "year", "all"], + "knownValues": ["hour", "day", "week", "month", "year", "all"], "default": "day", "description": "Timeframe for top sorting (only applies when sort=top)" }, diff --git a/internal/atproto/lexicon/social/coves/feed/getTimeline.json b/internal/atproto/lexicon/social/coves/feed/getTimeline.json index 8c2e298..74b77f2 100644 --- a/internal/atproto/lexicon/social/coves/feed/getTimeline.json +++ b/internal/atproto/lexicon/social/coves/feed/getTimeline.json @@ -10,13 +10,13 @@ "properties": { "sort": { "type": "string", - "enum": ["hot", "top", "new"], + "knownValues": ["hot", "top", "new"], "default": "hot", "description": "Sort order for timeline feed" }, "timeframe": { "type": "string", - "enum": ["hour", "day", "week", "month", "year", "all"], + "knownValues": ["hour", "day", "week", "month", "year", "all"], "default": "day", "description": "Timeframe for top sorting (only applies when sort=top)" }, diff --git a/internal/atproto/lexicon/social/coves/interaction/share.json b/internal/atproto/lexicon/social/coves/interaction/share.json deleted file mode 100644 index c21cfe8..0000000 --- a/internal/atproto/lexicon/social/coves/interaction/share.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "lexicon": 1, - "id": "social.coves.interaction.share", - "defs": { - "main": { - "type": "record", - "description": "Sharing a post to another community or platform", - "key": "tid", - "record": { - "type": "object", - "required": ["subject", "createdAt"], - "properties": { - "subject": { - "type": "string", - "format": "at-uri", - "description": "AT-URI of the post being shared" - }, - "toCommunity": { - "type": "string", - "format": "at-uri", - "description": "Community being shared to (if applicable)" - }, - "createdAt": { - "type": "string", - "format": "datetime" - } - } - } - } - } -} \ No newline at end of file diff --git a/internal/atproto/lexicon/social/coves/interaction/tag.json b/internal/atproto/lexicon/social/coves/interaction/tag.json deleted file mode 100644 index bcc616b..0000000 --- a/internal/atproto/lexicon/social/coves/interaction/tag.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "lexicon": 1, - "id": "social.coves.interaction.tag", - "defs": { - "main": { - "type": "record", - "description": "A tag applied to a post or comment", - "key": "tid", - "record": { - "type": "object", - "required": ["subject", "tag", "createdAt"], - "properties": { - "subject": { - "type": "string", - "format": "at-uri", - "description": "AT-URI of the post or comment being tagged" - }, - "tag": { - "type": "string", - "minLength": 1, - "maxLength": 50, - "knownValues": ["helpful", "insightful", "spam", "hostile", "offtopic", "misleading"], - "description": "Predefined tag or custom community tag" - }, - "createdAt": { - "type": "string", - "format": "datetime" - } - } - } - } - } -} \ No newline at end of file