at.locale.comment

locale.at

Schema Diff

+14 -1

From

CID
bafyreifrhrnykci...
Indexed At
2026-06-24 00:20 UTC
View this version

To

CID
bafyreid22me4hky...
Indexed At
2026-06-26 11:57 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 6 non-breaking changes.

Breaking Changes (2)
  • RemovedEdge RemovedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant1", kind: "variant", name: Some("#keyLocaleSubject") }
  • ConstraintAdded ConstraintAdded { vertex_id: "at.locale.comment#stringSubject.key", sort: "maxLength", value: "4096" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "at.locale.comment#stringSubject" }
  • AddedVertex AddedVertex { vertex_id: "at.locale.comment#stringSubject.key" }
  • AddedVertex AddedVertex { vertex_id: "at.locale.comment:body.subject:variant2" }
  • AddedEdge AddedEdge { src: "at.locale.comment#stringSubject", tgt: "at.locale.comment#stringSubject.key", kind: "prop", name: Some("key") }
  • AddedEdge AddedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant1", kind: "variant", name: Some("#stringSubject") }
  • AddedEdge AddedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant2", kind: "variant", name: Some("#keyLocaleSubject") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "at.locale.comment#stringSubject" }
  • AddedVertex { vertex_id: "at.locale.comment#stringSubject.key" }
  • AddedVertex { vertex_id: "at.locale.comment:body.subject:variant2" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "at.locale.comment#stringSubject.key", sort: "maxLength", value: "4096" }

Additional Notes

  • Breaking: RemovedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant1", kind: "variant", name: Some("#keyLocaleSubject") }
  • Non-breaking: AddedEdge { src: "at.locale.comment#stringSubject", tgt: "at.locale.comment#stringSubject.key", kind: "prop", name: Some("key") }
  • Non-breaking: AddedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant1", kind: "variant", name: Some("#stringSubject") }
  • Non-breaking: AddedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant2", kind: "variant", name: Some("#keyLocaleSubject") }
1 1
{
2 2
  "id": "at.locale.comment",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "project",
11 11
          "subject",
12 12
          "body",
13 13
          "createdAt"
14 14
        ],
15 15
        "properties": {
16 16
          "body": {
17 17
            "type": "string",
18 18
            "maxLength": 30000,
19 19
            "minLength": 1,
20 20
            "maxGraphemes": 10000
21 21
          },
22 22
          "parent": {
23 23
            "type": "string",
24 24
            "format": "at-uri",
25 25
            "description": "Parent comment, for threading."
26 26
          },
27 27
          "project": {
28 28
            "type": "string",
29 29
            "format": "at-uri"
30 30
          },
31 31
          "subject": {
32 32
            "refs": [
33 33
              "#recordSubject",
34 +
              "#stringSubject",
34 35
              "#keyLocaleSubject"
35 36
            ],
36 37
            "type": "union",
37 -
            "description": "What the comment is about: a record (e.g. a translation) or a (key, locale) pair."
38 +
            "description": "What the comment is about: a record (e.g. a translation), a source string key, or a (key, locale) pair."
38 39
          },
39 40
          "createdAt": {
40 41
            "type": "string",
41 42
            "format": "datetime"
42 43
          }
43 44
        }
44 45
      }
45 46
    },
46 47
    "recordSubject": {
47 48
      "type": "object",
48 49
      "required": [
49 50
        "uri"
50 51
      ],
51 52
      "properties": {
52 53
        "uri": {
53 54
          "type": "string",
54 55
          "format": "at-uri"
55 56
        }
56 57
      }
57 58
    },
59 +
    "stringSubject": {
60 +
      "type": "object",
61 +
      "required": [
62 +
        "key"
63 +
      ],
64 +
      "properties": {
65 +
        "key": {
66 +
          "type": "string",
67 +
          "maxLength": 4096
68 +
        }
69 +
      }
70 +
    },
58 71
    "keyLocaleSubject": {
59 72
      "type": "object",
60 73
      "required": [
61 74
        "key",
62 75
        "locale"
63 76
      ],
64 77
      "properties": {
65 78
        "key": {
66 79
          "type": "string",
67 80
          "maxLength": 4096
68 81
        },
69 82
        "locale": {
70 83
          "type": "string",
71 84
          "maxLength": 35
72 85
        }
73 86
      }
74 87
    }
75 88
  },
76 89
  "$type": "com.atproto.lexicon.schema",
77 90
  "lexicon": 1,
78 91
  "description": "Threaded discussion on a key, a translation, or a locale. Author-owned."
79 92
}

Compare Other Versions

Lexicon Garden

@