···11-{
22- "lexicon": 1,
33- "id": "social.coves.interaction.tag",
44- "defs": {
55- "main": {
66- "type": "record",
77- "description": "A tag applied to a post or comment",
88- "key": "tid",
99- "record": {
1010- "type": "object",
1111- "required": ["subject", "tag", "createdAt"],
1212- "properties": {
1313- "subject": {
1414- "type": "string",
1515- "format": "at-uri",
1616- "description": "AT-URI of the post or comment being tagged"
1717- },
1818- "tag": {
1919- "type": "string",
2020- "minLength": 1,
2121- "maxLength": 50,
2222- "knownValues": ["helpful", "insightful", "spam", "hostile", "offtopic", "misleading"],
2323- "description": "Predefined tag or custom community tag"
2424- },
2525- "createdAt": {
2626- "type": "string",
2727- "format": "datetime"
2828- }
2929- }
3030- }
3131- }
3232- }
3333-}
+13
scripts/validate-schemas.sh
···11+#!/bin/bash
22+# Validate all lexicon schemas and test data
33+44+set -e
55+66+echo "🔍 Validating Coves lexicon schemas..."
77+echo ""
88+99+# Run the Go validation tool
1010+go run ./cmd/validate-lexicon/main.go
1111+1212+echo ""
1313+echo "✅ Schema validation complete!"
···11{
22 "$type": "social.coves.moderation.tribunalVote",
33 "tribunal": "at://did:plc:community123/social.coves.moderation.tribunal/3k7a3dmb5bk2c",
44- "subject": "at://$1/social.coves.community.post/3k7a2clb4bj2b",
44+ "subject": "at://did:plc:testuser123/social.coves.community.post/3k7a2clb4bj2b",
55 "decision": "remove",
66 "reasoning": "The moderator's action was justified based on clear violation of Rule 2 (No Spam). The user posted the same promotional content across multiple communities within a short timeframe.",
77 "precedents": [
···11-{
22- "$type": "social.coves.community.post",
33- "community": "did:plc:programming123",
44- "author": "did:plc:testauthor123",
55- "postType": "invalid-type",
66- "title": "This has an invalid post type",
77- "content": "The postType field is not defined in the schema and should be rejected",
88- "tags": [],
99- "langs": ["en"],
1010- "createdAt": "2025-01-09T14:30:00Z"
1111-}