org.hypercerts.defs
Schema Diff
+44 -3
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 11 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxLength", value: "250000" }
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxGraphemes", value: "25000" }
Non-Breaking Changes (11)
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.facets" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.facets:items" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.value" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#smallVideo" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#smallVideo.video" }
- AddedEdge AddedEdge { src: "org.hypercerts.defs#descriptionString", tgt: "org.hypercerts.defs#descriptionString.facets", kind: "prop", name: Some("facets") }
- AddedEdge AddedEdge { src: "org.hypercerts.defs#descriptionString", tgt: "org.hypercerts.defs#descriptionString.value", kind: "prop", name: Some("value") }
- AddedEdge AddedEdge { src: "org.hypercerts.defs#descriptionString.facets", tgt: "org.hypercerts.defs#descriptionString.facets:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.hypercerts.defs#smallVideo", tgt: "org.hypercerts.defs#smallVideo.video", kind: "prop", name: Some("video") }
- ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.defs#uri.uri", sort: "maxGraphemes" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.facets" }AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.facets:items" }AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString.value" }AddedVertex { vertex_id: "org.hypercerts.defs#smallVideo" }AddedVertex { vertex_id: "org.hypercerts.defs#smallVideo.video" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxLength", value: "250000" }
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxGraphemes", value: "25000" }
- ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.defs#uri.uri", sort: "maxGraphemes" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.hypercerts.defs#descriptionString", tgt: "org.hypercerts.defs#descriptionString.facets", kind: "prop", name: Some("facets") }
- Non-breaking: AddedEdge { src: "org.hypercerts.defs#descriptionString", tgt: "org.hypercerts.defs#descriptionString.value", kind: "prop", name: Some("value") }
- Non-breaking: AddedEdge { src: "org.hypercerts.defs#descriptionString.facets", tgt: "org.hypercerts.defs#descriptionString.facets:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.hypercerts.defs#smallVideo", tgt: "org.hypercerts.defs#smallVideo.video", kind: "prop", name: Some("video") }
1
1
{
2
2
"id": "org.hypercerts.defs",
3
3
"defs": {
4
4
"uri": {
5
5
"type": "object",
6
6
"required": [
7
7
"uri"
8
8
],
9
9
"properties": {
10
10
"uri": {
11
11
"type": "string",
12
12
"format": "uri",
13
-
"description": "URI to external data",
14
-
"maxGraphemes": 1024
13
+
"description": "URI to external data"
15
14
}
16
15
},
17
16
"description": "Object containing a URI to external data"
18
17
},
19
18
"largeBlob": {
20
19
"type": "object",
21
20
"required": [
22
21
"blob"
23
22
],
24
23
"properties": {
25
24
"blob": {
26
25
"type": "blob",
27
26
"accept": [
28
27
"*/*"
29
28
],
30
29
"maxSize": 104857600,
31
30
"description": "Blob to external data (up to 100MB)"
32
31
}
33
32
},
34
33
"description": "Object containing a blob to external data"
35
34
},
36
35
"smallBlob": {
37
36
"type": "object",
38
37
"required": [
39
38
"blob"
40
39
],
41
40
"properties": {
42
41
"blob": {
43
42
"type": "blob",
44
43
"accept": [
45
44
"*/*"
46
45
],
47
46
"maxSize": 10485760,
48
47
"description": "Blob to external data (up to 10MB)"
49
48
}
50
49
},
51
50
"description": "Object containing a blob to external data"
52
51
},
53
52
"largeImage": {
54
53
"type": "object",
55
54
"required": [
56
55
"image"
57
56
],
58
57
"properties": {
59
58
"image": {
60
59
"type": "blob",
61
60
"accept": [
62
61
"image/jpeg",
63
62
"image/jpg",
64
63
"image/png",
65
64
"image/webp"
66
65
],
67
66
"maxSize": 10485760,
68
67
"description": "Image (up to 10MB)"
69
68
}
70
69
},
71
70
"description": "Object containing a large image"
72
71
},
73
72
"smallImage": {
74
73
"type": "object",
75
74
"required": [
76
75
"image"
77
76
],
78
77
"properties": {
79
78
"image": {
80
79
"type": "blob",
81
80
"accept": [
82
81
"image/jpeg",
83
82
"image/jpg",
84
83
"image/png",
85
84
"image/webp"
86
85
],
87
86
"maxSize": 5242880,
88
87
"description": "Image (up to 5MB)"
89
88
}
90
89
},
91
90
"description": "Object containing a small image"
91
+
},
92
+
"smallVideo": {
93
+
"type": "object",
94
+
"required": [
95
+
"video"
96
+
],
97
+
"properties": {
98
+
"video": {
99
+
"type": "blob",
100
+
"accept": [
101
+
"video/mp4",
102
+
"video/webm"
103
+
],
104
+
"maxSize": 20971520,
105
+
"description": "Video (up to 20MB)"
106
+
}
107
+
},
108
+
"description": "Object containing a small video"
109
+
},
110
+
"descriptionString": {
111
+
"type": "object",
112
+
"required": [
113
+
"value"
114
+
],
115
+
"properties": {
116
+
"value": {
117
+
"type": "string",
118
+
"maxLength": 250000,
119
+
"description": "The description text (plain text or markdown).",
120
+
"maxGraphemes": 25000
121
+
},
122
+
"facets": {
123
+
"type": "array",
124
+
"items": {
125
+
"ref": "app.bsky.richtext.facet",
126
+
"type": "ref"
127
+
},
128
+
"description": "Rich text annotations for the description (mentions, URLs, hashtags, etc)."
129
+
}
130
+
},
131
+
"description": "An inline long-form description as plain text or markdown, with optional rich-text annotations."
92
132
}
93
133
},
94
134
"$type": "com.atproto.lexicon.schema",
95
-
"lexicon": 1
135
+
"lexicon": 1,
136
+
"description": "Common type definitions used across all Hypercerts protocols."
96
137
}