org.hypercerts.collection

hypercerts.org

Schema Diff

+30 -6

From

CID
bafyreigxp6ciklu...
Indexed At
2026-03-19 20:27 UTC
View this version

To

CID
bafyreide7fm4yjk...
Indexed At
2026-07-26 20:13 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

4 breaking changes, 22 non-breaking changes.

Breaking Changes (4)
  • RemovedVertex RemovedVertex { vertex_id: "pub.leaflet.pages.linearDocument#main" }
  • RemovedEdge RemovedEdge { src: "org.hypercerts.collection:body.description", tgt: "pub.leaflet.pages.linearDocument#main", kind: "ref", name: None }
  • KindChanged KindChanged { vertex_id: "org.hypercerts.collection:body.description", old_kind: "ref", new_kind: "union" }
  • ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.collection:body.type", sort: "knownValues", value: "[\"favorites\",\"project\",\"portfolio\",\"program\"]" }
Non-Breaking Changes (22)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant2" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.shortDescriptionFacets" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.shortDescriptionFacets:items" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.signatures" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }
  • AddedVertex AddedVertex { vertex_id: "pub.leaflet.pages.linearDocument" }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.shortDescriptionFacets", kind: "prop", name: Some("shortDescriptionFacets") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.signatures", kind: "prop", name: Some("signatures") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description:variant0", tgt: "org.hypercerts.defs#descriptionString", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description:variant1", tgt: "pub.leaflet.pages.linearDocument", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.description:variant2", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.shortDescriptionFacets", tgt: "org.hypercerts.collection:body.shortDescriptionFacets:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.shortDescriptionFacets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.collection:body.description", sort: "ref" }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "pub.leaflet.pages.linearDocument#main" }

Added Elements

  • AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex { vertex_id: "app.certified.signature.defs#list" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant0" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant1" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.description:variant2" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.shortDescriptionFacets" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.shortDescriptionFacets:items" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.signatures" }
  • AddedVertex { vertex_id: "org.hypercerts.defs#descriptionString" }
  • AddedVertex { vertex_id: "pub.leaflet.pages.linearDocument" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "org.hypercerts.collection:body.type", sort: "knownValues", value: "[\"favorites\",\"project\",\"portfolio\",\"program\"]" }
  • ConstraintRemoved ConstraintRemoved { vertex_id: "org.hypercerts.collection:body.description", sort: "ref" }

Additional Notes

  • Breaking: RemovedEdge { src: "org.hypercerts.collection:body.description", tgt: "pub.leaflet.pages.linearDocument#main", kind: "ref", name: None }
  • Breaking: KindChanged { vertex_id: "org.hypercerts.collection:body.description", old_kind: "ref", new_kind: "union" }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.shortDescriptionFacets", kind: "prop", name: Some("shortDescriptionFacets") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.signatures", kind: "prop", name: Some("signatures") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description", tgt: "org.hypercerts.collection:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description:variant0", tgt: "org.hypercerts.defs#descriptionString", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description:variant1", tgt: "pub.leaflet.pages.linearDocument", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.description:variant2", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.shortDescriptionFacets", tgt: "org.hypercerts.collection:body.shortDescriptionFacets:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.shortDescriptionFacets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1 1
{
2 2
  "id": "org.hypercerts.collection",
3 3
  "defs": {
4 4
    "item": {
5 5
      "type": "object",
6 6
      "required": [
7 7
        "itemIdentifier"
8 8
      ],
9 9
      "properties": {
10 10
        "itemWeight": {
11 11
          "type": "string",
12 12
          "maxLength": 100,
13 13
          "description": "Optional weight for this item (positive numeric value stored as string). Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed."
14 14
        },
15 15
        "itemIdentifier": {
16 16
          "ref": "com.atproto.repo.strongRef",
17 17
          "type": "ref",
18 18
          "description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection)."
19 19
        }
20 -
      }
20 +
      },
21 +
      "description": "An item in a collection, with an identifier and optional weight."
21 22
    },
22 23
    "main": {
23 24
      "key": "tid",
24 25
      "type": "record",
25 26
      "record": {
26 27
        "type": "object",
27 28
        "required": [
28 29
          "title",
29 30
          "createdAt"
30 31
        ],
31 32
        "properties": {
32 33
          "type": {
33 34
            "type": "string",
34 35
            "maxLength": 64,
35 -
            "description": "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection."
36 +
            "description": "The type of this collection. Values beyond the known set are permitted.",
37 +
            "knownValues": [
38 +
              "favorites",
39 +
              "project",
40 +
              "portfolio",
41 +
              "program"
42 +
            ]
36 43
          },
37 44
          "items": {
38 45
            "type": "array",
39 46
            "items": {
40 47
              "ref": "#item",
41 48
              "type": "ref"
42 49
            },
43 50
            "maxLength": 1000,
44 51
            "description": "Array of items in this collection with optional weights."
45 52
          },
46 53
          "title": {
47 54
            "type": "string",
48 55
            "maxLength": 800,
49 56
            "description": "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
50 57
            "maxGraphemes": 80
51 58
          },
52 59
          "avatar": {
53 60
            "refs": [
54 61
              "org.hypercerts.defs#uri",
55 62
              "org.hypercerts.defs#smallImage"
56 63
            ],
57 64
            "type": "union",
58 65
            "description": "The collection's avatar/profile image as a URI or image blob."
59 66
          },
60 67
          "banner": {
61 68
            "refs": [
62 69
              "org.hypercerts.defs#uri",
63 70
              "org.hypercerts.defs#largeImage"
64 71
            ],
65 72
            "type": "union",
66 73
            "description": "Larger horizontal image to display behind the collection view."
67 74
          },
68 75
          "location": {
69 76
            "ref": "com.atproto.repo.strongRef",
70 77
            "type": "ref",
71 78
            "description": "A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location."
72 79
          },
73 80
          "createdAt": {
74 81
            "type": "string",
75 82
            "format": "datetime",
76 83
            "description": "Client-declared timestamp when this record was originally created"
77 84
          },
85 +
          "signatures": {
86 +
            "ref": "app.certified.signature.defs#list",
87 +
            "type": "ref",
88 +
            "description": "Optional cryptographic signatures attesting to this record's content."
89 +
          },
78 90
          "description": {
79 -
            "ref": "pub.leaflet.pages.linearDocument#main",
80 -
            "type": "ref",
81 -
            "description": "Rich-text description, represented as a Leaflet linear document."
91 +
            "refs": [
92 +
              "org.hypercerts.defs#descriptionString",
93 +
              "pub.leaflet.pages.linearDocument",
94 +
              "com.atproto.repo.strongRef"
95 +
            ],
96 +
            "type": "union",
97 +
            "description": "Long-form description of the collection. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record."
82 98
          },
83 99
          "shortDescription": {
84 100
            "type": "string",
85 101
            "maxLength": 3000,
86 -
            "description": "Short summary of this collection, suitable for previews and list views",
102 +
            "description": "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
87 103
            "maxGraphemes": 300
104 +
          },
105 +
          "shortDescriptionFacets": {
106 +
            "type": "array",
107 +
            "items": {
108 +
              "ref": "app.bsky.richtext.facet",
109 +
              "type": "ref"
110 +
            },
111 +
            "description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
88 112
          }
89 113
        }
90 114
      },
91 115
      "description": "A collection/group of items (activities and/or other collections). Collections support recursive nesting."
92 116
    }
93 117
  },
94 118
  "$type": "com.atproto.lexicon.schema",
95 119
  "lexicon": 1
96 120
}

Compare Other Versions

Lexicon Garden

@