space.opendeck.card

opendeck.space

Schema Diff

+17 -8

From

CID
bafyreidopmprcia...
Indexed At
2026-09-21 17:22 UTC
View this version

To

CID
bafyreiahubszrr7...
Indexed At
2026-09-23 21:36 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 7 non-breaking changes.

Breaking Changes (4)
  • RemovedVertex RemovedVertex { vertex_id: "space.opendeck.card:body.phonetic" }
  • RemovedEdge RemovedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.phonetic", kind: "prop", name: Some("phonetic") }
  • ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxLength", old_value: "10000", new_value: "640" }
  • ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxGraphemes", old_value: "1000", new_value: "64" }
Non-Breaking Changes (7)
  • AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.backReading" }
  • AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.frontReading" }
  • AddedVertex AddedVertex { vertex_id: "space.opendeck.card:body.updatedAt" }
  • AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.backReading", kind: "prop", name: Some("backReading") }
  • AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.frontReading", kind: "prop", name: Some("frontReading") }
  • AddedEdge AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "space.opendeck.card:body.deck", sort: "format" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "space.opendeck.card:body.phonetic" }

Added Elements

  • AddedVertex { vertex_id: "space.opendeck.card:body.backReading" }
  • AddedVertex { vertex_id: "space.opendeck.card:body.frontReading" }
  • AddedVertex { vertex_id: "space.opendeck.card:body.updatedAt" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxGraphemes", old_value: "1000", new_value: "64" }
  • ConstraintTightened ConstraintTightened { vertex_id: "space.opendeck.card:body.deck", sort: "maxLength", old_value: "10000", new_value: "640" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "space.opendeck.card:body.deck", sort: "format" }

Additional Notes

  • Breaking: RemovedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.phonetic", kind: "prop", name: Some("phonetic") }
  • Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.backReading", kind: "prop", name: Some("backReading") }
  • Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.frontReading", kind: "prop", name: Some("frontReading") }
  • Non-breaking: AddedEdge { src: "space.opendeck.card:body", tgt: "space.opendeck.card:body.updatedAt", kind: "prop", name: Some("updatedAt") }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A flashcard belonging to a deck.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "audio": {
10 10
            "accept": [
11 11
              "audio/*"
12 12
            ],
13 13
            "description": "Optional audio blob (pronunciation).",
14 14
            "maxSize": 5000000,
15 15
            "type": "blob"
16 16
          },
17 17
          "back": {
18 18
            "maxGraphemes": 2000,
19 19
            "maxLength": 20000,
20 20
            "type": "string"
21 21
          },
22 +
          "backReading": {
23 +
            "description": "Reading of the back, e.g. IPA, pinyin or rōmaji.",
24 +
            "maxGraphemes": 500,
25 +
            "maxLength": 5000,
26 +
            "type": "string"
27 +
          },
22 28
          "createdAt": {
23 29
            "format": "datetime",
24 30
            "type": "string"
25 31
          },
26 32
          "deck": {
27 -
            "description": "AT-URI of the owning deck.",
28 -
            "format": "at-uri",
29 -
            "maxGraphemes": 1000,
30 -
            "maxLength": 10000,
33 +
            "description": "Record key (rkey) of the owning deck in the same repo.",
34 +
            "maxGraphemes": 64,
35 +
            "maxLength": 640,
31 36
            "type": "string"
32 37
          },
33 38
          "examples": {
34 39
            "items": {
35 40
              "maxGraphemes": 1000,
36 41
              "maxLength": 10000,
37 42
              "type": "string"
38 43
            },
39 44
            "maxLength": 20,
40 45
            "type": "array"
41 46
          },
42 47
          "front": {
43 48
            "maxGraphemes": 2000,
44 49
            "maxLength": 20000,
45 50
            "type": "string"
46 51
          },
52 +
          "frontReading": {
53 +
            "description": "Reading of the front, e.g. IPA, pinyin or rōmaji.",
54 +
            "maxGraphemes": 500,
55 +
            "maxLength": 5000,
56 +
            "type": "string"
57 +
          },
47 58
          "hint": {
48 59
            "maxGraphemes": 1000,
49 60
            "maxLength": 10000,
50 61
            "type": "string"
51 62
          },
52 63
          "image": {
53 64
            "accept": [
54 65
              "image/*"
55 66
            ],
56 67
            "description": "Optional image blob shown on the card.",
57 68
            "maxSize": 5000000,
58 69
            "type": "blob"
59 70
          },
60 71
          "imageAlt": {
61 72
            "description": "Alt text for the image (accessibility).",
62 73
            "maxGraphemes": 1000,
63 74
            "maxLength": 10000,
64 75
            "type": "string"
65 76
          },
66 77
          "order": {
67 78
            "type": "integer"
68 79
          },
69 -
          "phonetic": {
70 -
            "description": "Pronunciation, e.g. IPA or pinyin.",
71 -
            "maxGraphemes": 500,
72 -
            "maxLength": 5000,
80 +
          "updatedAt": {
81 +
            "format": "datetime",
73 82
            "type": "string"
74 83
          }
75 84
        },
76 85
        "required": [
77 86
          "deck",
78 87
          "front",
79 88
          "back",
80 89
          "createdAt"
81 90
        ],
82 91
        "type": "object"
83 92
      },
84 93
      "type": "record"
85 94
    }
86 95
  },
87 96
  "id": "space.opendeck.card",
88 97
  "lexicon": 1
89 98
}

Compare Other Versions

Lexicon Garden

@