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

3 breaking changes, 7 non-breaking changes.

Breaking Changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "at.locale.comment#stringSubject", src: "at.locale.comment#stringSubject", tgt: "at.locale.comment#stringSubject.key", kind: "prop", name: Some("key") }
  • RemovedEdge RemovedEdge { src: "at.locale.comment:body.subject", tgt: "at.locale.comment:body.subject:variant1", kind: "variant", name: Some("#keyLocaleSubject") }
  • RemovedEdge RemovedEdge { src: "at.locale.comment:body.subject:variant1", tgt: "at.locale.comment#keyLocaleSubject", kind: "ref", name: None }
Non-Breaking Changes (7)
  • 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: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") }
  • AddedEdge AddedEdge { src: "at.locale.comment:body.subject:variant1", tgt: "at.locale.comment#stringSubject", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "at.locale.comment:body.subject:variant2", tgt: "at.locale.comment#keyLocaleSubject", kind: "ref", name: None }

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" }

Additional Notes

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

Compare Other Versions

Lexicon Garden

@