org.hypercerts.defs

hypercerts.org

Schema Diff

+44 -3

From

CID
bafyreibqjmv3lka...
Indexed At
2026-02-18 19:48 UTC
View this version

To

CID
bafyreibbdculqiz...
Indexed At
2026-04-09 11:40 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@