art.cllctv.artwork

cllctv.art

Schema Diff

+32 -1

From

CID
bafyreiccfo7gxpe...
Indexed At
2026-04-28 16:01 UTC
View this version

To

CID
bafyreicstu6lurb...
Indexed At
2026-06-19 09:33 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 20 non-breaking changes.

Breaking Changes (1)
  • RemovedEdge RemovedEdge { src: "art.cllctv.artwork:body.content", tgt: "art.cllctv.artwork:body.content:variant0", kind: "variant", name: Some("art.cllctv.content.plaintext") }
Non-Breaking Changes (20)
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant0" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant1" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant2" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant3" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant4" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork:body.bskyPostRef" }
  • AddedVertex AddedVertex { vertex_id: "art.cllctv.artwork:body.textContent" }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content", tgt: "art.cllctv.artwork#content.blocks", kind: "prop", name: Some("blocks") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks", tgt: "art.cllctv.artwork#content.blocks:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant0", kind: "variant", name: Some("art.cllctv.block.text") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant1", kind: "variant", name: Some("art.cllctv.block.blockquote") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant2", kind: "variant", name: Some("art.cllctv.block.bulletList") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant3", kind: "variant", name: Some("art.cllctv.block.orderedList") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant4", kind: "variant", name: Some("art.cllctv.block.horizontalRule") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork:body", tgt: "art.cllctv.artwork:body.bskyPostRef", kind: "prop", name: Some("bskyPostRef") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork:body", tgt: "art.cllctv.artwork:body.textContent", kind: "prop", name: Some("textContent") }
  • AddedEdge AddedEdge { src: "art.cllctv.artwork:body.content", tgt: "art.cllctv.artwork:body.content:variant0", kind: "variant", name: Some("#content") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "art.cllctv.artwork#content" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant0" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant1" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant2" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant3" }
  • AddedVertex { vertex_id: "art.cllctv.artwork#content.blocks:items:variant4" }
  • AddedVertex { vertex_id: "art.cllctv.artwork:body.bskyPostRef" }
  • AddedVertex { vertex_id: "art.cllctv.artwork:body.textContent" }

Additional Notes

  • Breaking: RemovedEdge { src: "art.cllctv.artwork:body.content", tgt: "art.cllctv.artwork:body.content:variant0", kind: "variant", name: Some("art.cllctv.content.plaintext") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content", tgt: "art.cllctv.artwork#content.blocks", kind: "prop", name: Some("blocks") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks", tgt: "art.cllctv.artwork#content.blocks:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant0", kind: "variant", name: Some("art.cllctv.block.text") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant1", kind: "variant", name: Some("art.cllctv.block.blockquote") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant2", kind: "variant", name: Some("art.cllctv.block.bulletList") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant3", kind: "variant", name: Some("art.cllctv.block.orderedList") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork#content.blocks:items", tgt: "art.cllctv.artwork#content.blocks:items:variant4", kind: "variant", name: Some("art.cllctv.block.horizontalRule") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork:body", tgt: "art.cllctv.artwork:body.bskyPostRef", kind: "prop", name: Some("bskyPostRef") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork:body", tgt: "art.cllctv.artwork:body.textContent", kind: "prop", name: Some("textContent") }
  • Non-breaking: AddedEdge { src: "art.cllctv.artwork:body.content", tgt: "art.cllctv.artwork:body.content:variant0", kind: "variant", name: Some("#content") }
1 1
{
2 2
  "id": "art.cllctv.artwork",
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 +
          "title",
11 +
          "embed",
10 12
          "createdAt"
11 13
        ],
12 14
        "properties": {
13 15
          "tags": {
14 16
            "type": "array",
15 17
            "items": {
16 18
              "type": "string",
17 19
              "maxLength": 640,
18 20
              "maxGraphemes": 64
19 21
            },
20 22
            "maxLength": 8,
21 23
            "description": "Additional hashtags, in addition to any included in post text and facets."
22 24
          },
23 25
          "embed": {
24 26
            "type": "array",
25 27
            "items": {
26 28
              "refs": [
27 29
                "art.cllctv.embed.images#image",
28 30
                "art.cllctv.embed.externalVideo"
29 31
              ],
30 32
              "type": "union"
31 33
            }
32 34
          },
33 35
          "langs": {
34 36
            "type": "array",
35 37
            "items": {
36 38
              "type": "string",
37 39
              "format": "language"
38 40
            },
39 41
            "maxLength": 3,
40 42
            "description": "Indicates human language of post primary text content."
41 43
          },
42 44
          "title": {
43 45
            "type": "string",
44 46
            "maxLength": 1280,
45 47
            "maxGraphemes": 128
46 48
          },
47 49
          "labels": {
48 50
            "refs": [
49 51
              "com.atproto.label.defs#selfLabels"
50 52
            ],
51 53
            "type": "union",
52 54
            "description": "Self-label values for this post. Effectively content warnings."
53 55
          },
54 56
          "content": {
55 57
            "refs": [
56 -
              "art.cllctv.content.plaintext"
58 +
              "#content"
57 59
            ],
58 60
            "type": "union"
59 61
          },
60 62
          "details": {
61 63
            "ref": "#details",
62 64
            "type": "ref"
63 65
          },
64 66
          "ogImage": {
65 67
            "type": "blob",
66 68
            "accept": [
67 69
              "image/png"
68 70
            ],
69 71
            "maxSize": 5000000
70 72
          },
71 73
          "createdAt": {
72 74
            "type": "string",
73 75
            "format": "datetime"
74 76
          },
77 +
          "bskyPostRef": {
78 +
            "ref": "com.atproto.repo.strongRef",
79 +
            "type": "ref",
80 +
            "description": "Strong reference to a Bluesky post. Useful to keep track of comments off-platform."
81 +
          },
75 82
          "description": {
76 83
            "type": "string",
77 84
            "maxLength": 3000,
78 85
            "maxGraphemes": 300
86 +
          },
87 +
          "textContent": {
88 +
            "type": "string"
79 89
          }
80 90
        }
81 91
      },
82 92
      "description": "Record containing a cllctv.ART artwork."
83 93
    },
94 +
    "content": {
95 +
      "type": "object",
96 +
      "required": [
97 +
        "blocks"
98 +
      ],
99 +
      "properties": {
100 +
        "blocks": {
101 +
          "type": "array",
102 +
          "items": {
103 +
            "refs": [
104 +
              "art.cllctv.block.text",
105 +
              "art.cllctv.block.blockquote",
106 +
              "art.cllctv.block.bulletList",
107 +
              "art.cllctv.block.orderedList",
108 +
              "art.cllctv.block.horizontalRule"
109 +
            ],
110 +
            "type": "union"
111 +
          }
112 +
        }
113 +
      }
114 +
    },
84 115
    "details": {
85 116
      "type": "object",
86 117
      "properties": {
87 118
        "size": {
88 119
          "ref": "#detailsSize",
89 120
          "type": "ref"
90 121
        },
91 122
        "year": {
92 123
          "type": "string"
93 124
        },
94 125
        "place": {
95 126
          "type": "string",
96 127
          "maxLength": 3000,
97 128
          "maxGraphemes": 300
98 129
        },
99 130
        "medium": {
100 131
          "type": "string",
101 132
          "knownValues": [
102 133
            "ceramic",
103 134
            "collage",
104 135
            "digital",
105 136
            "drawing",
106 137
            "ephemera",
107 138
            "jewelry",
108 139
            "painting",
109 140
            "performance",
110 141
            "photography",
111 142
            "prints",
112 143
            "sculpture",
113 144
            "street",
114 145
            "video"
115 146
          ]
116 147
        },
117 148
        "rarity": {
118 149
          "type": "string",
119 150
          "knownValues": [
120 151
            "unique",
121 152
            "limited",
122 153
            "open",
123 154
            "unknown"
124 155
          ]
125 156
        },
126 157
        "condition": {
127 158
          "type": "string",
128 159
          "knownValues": [
129 160
            "excellent",
130 161
            "fine",
131 162
            "good",
132 163
            "fair"
133 164
          ]
134 165
        },
135 166
        "materials": {
136 167
          "type": "string",
137 168
          "maxLength": 2000,
138 169
          "maxGraphemes": 200
139 170
        }
140 171
      }
141 172
    },
142 173
    "detailsSize": {
143 174
      "type": "object",
144 175
      "properties": {
145 176
        "depth": {
146 177
          "type": "string"
147 178
        },
148 179
        "width": {
149 180
          "type": "string"
150 181
        },
151 182
        "height": {
152 183
          "type": "string"
153 184
        }
154 185
      },
155 186
      "description": "Values should be stored in millimetre (mm)."
156 187
    }
157 188
  },
158 189
  "$type": "com.atproto.lexicon.schema",
159 190
  "lexicon": 1
160 191
}

Compare Other Versions

Lexicon Garden

@