org.hypercerts.defs
Schema Diff
+24 -2
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 7 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxGraphemes", value: "25000" }
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxLength", value: "250000" }
Non-Breaking Changes (7)
- 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" }
- 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 }
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" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxGraphemes", value: "25000" }
- ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.defs#descriptionString.value", sort: "maxLength", value: "250000" }
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 }
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
13
"description": "URI to external data"
14
14
}
15
15
},
16
16
"description": "Object containing a URI to external data"
17
17
},
18
18
"largeBlob": {
19
19
"type": "object",
20
20
"required": [
21
21
"blob"
22
22
],
23
23
"properties": {
24
24
"blob": {
25
25
"type": "blob",
26
26
"accept": [
27
27
"*/*"
28
28
],
29
29
"maxSize": 104857600,
30
30
"description": "Blob to external data (up to 100MB)"
31
31
}
32
32
},
33
33
"description": "Object containing a blob to external data"
34
34
},
35
35
"smallBlob": {
36
36
"type": "object",
37
37
"required": [
38
38
"blob"
39
39
],
40
40
"properties": {
41
41
"blob": {
42
42
"type": "blob",
43
43
"accept": [
44
44
"*/*"
45
45
],
46
46
"maxSize": 10485760,
47
47
"description": "Blob to external data (up to 10MB)"
48
48
}
49
49
},
50
50
"description": "Object containing a blob to external data"
51
51
},
52
52
"largeImage": {
53
53
"type": "object",
54
54
"required": [
55
55
"image"
56
56
],
57
57
"properties": {
58
58
"image": {
59
59
"type": "blob",
60
60
"accept": [
61
61
"image/jpeg",
62
62
"image/jpg",
63
63
"image/png",
64
64
"image/webp"
65
65
],
66
66
"maxSize": 10485760,
67
67
"description": "Image (up to 10MB)"
68
68
}
69
69
},
70
70
"description": "Object containing a large image"
71
71
},
72
72
"smallImage": {
73
73
"type": "object",
74
74
"required": [
75
75
"image"
76
76
],
77
77
"properties": {
78
78
"image": {
79
79
"type": "blob",
80
80
"accept": [
81
81
"image/jpeg",
82
82
"image/jpg",
83
83
"image/png",
84
84
"image/webp"
85
85
],
86
86
"maxSize": 5242880,
87
87
"description": "Image (up to 5MB)"
88
88
}
89
89
},
90
90
"description": "Object containing a small image"
91
91
},
92
92
"smallVideo": {
93
93
"type": "object",
94
94
"required": [
95
95
"video"
96
96
],
97
97
"properties": {
98
98
"video": {
99
99
"type": "blob",
100
100
"accept": [
101
101
"video/mp4",
102
102
"video/webm"
103
103
],
104
104
"maxSize": 20971520,
105
105
"description": "Video (up to 20MB)"
106
106
}
107
107
},
108
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."
109
132
}
110
133
},
111
134
"$type": "com.atproto.lexicon.schema",
112
-
"lexicon": 1,
113
-
"description": "Common type definitions used across all Hypercerts protocols."
135
+
"lexicon": 1
114
136
}