org.hypercerts.collection

hypercerts.org

Schema Diff

+10 -1

From

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

To

CID
bafyreia3fmqscic...
Indexed At
2026-09-02 06:29 UTC
View this version

Compatibility Analysis

Backward Compatible

Backward compatible. 5 non-breaking changes.

Non-Breaking Changes (5)
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.tags" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.collection:body.tags:items" }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.tags", kind: "prop", name: Some("tags") }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.tags", tgt: "org.hypercerts.collection:body.tags:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "org.hypercerts.collection:body.tags:items", tgt: "com.atproto.repo.strongRef", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "org.hypercerts.collection:body.tags" }
  • AddedVertex { vertex_id: "org.hypercerts.collection:body.tags:items" }

Additional Notes

  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body", tgt: "org.hypercerts.collection:body.tags", kind: "prop", name: Some("tags") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.tags", tgt: "org.hypercerts.collection:body.tags:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "org.hypercerts.collection:body.tags:items", tgt: "com.atproto.repo.strongRef", 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 -
          "description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection)."
18 +
          "description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity), features (org.hypercerts.entity.feature), and/or other collections (org.hypercerts.collection)."
19 19
        }
20 20
      },
21 21
      "description": "An item in a collection, with an identifier and optional weight."
22 22
    },
23 23
    "main": {
24 24
      "key": "tid",
25 25
      "type": "record",
26 26
      "record": {
27 27
        "type": "object",
28 28
        "required": [
29 29
          "title",
30 30
          "createdAt"
31 31
        ],
32 32
        "properties": {
33 +
          "tags": {
34 +
            "type": "array",
35 +
            "items": {
36 +
              "ref": "com.atproto.repo.strongRef",
37 +
              "type": "ref"
38 +
            },
39 +
            "maxLength": 20,
40 +
            "description": "References to org.hypercerts.vocab.tag records classifying this record. All listed tags apply simultaneously (logical AND); the array carries no ordering, weighting, negation, inheritance, or rule logic, and never will — any future expression logic must arrive as a new field and must never reinterpret this one."
41 +
          },
33 42
          "type": {
34 43
            "type": "string",
35 44
            "maxLength": 64,
36 45
            "description": "The type of this collection. Values beyond the known set are permitted.",
37 46
            "knownValues": [
38 47
              "favorites",
39 48
              "project",
40 49
              "portfolio",
41 50
              "program"
42 51
            ]
43 52
          },
44 53
          "items": {
45 54
            "type": "array",
46 55
            "items": {
47 56
              "ref": "#item",
48 57
              "type": "ref"
49 58
            },
50 59
            "maxLength": 1000,
51 60
            "description": "Array of items in this collection with optional weights."
52 61
          },
53 62
          "title": {
54 63
            "type": "string",
55 64
            "maxLength": 800,
56 65
            "description": "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
57 66
            "maxGraphemes": 80
58 67
          },
59 68
          "avatar": {
60 69
            "refs": [
61 70
              "org.hypercerts.defs#uri",
62 71
              "org.hypercerts.defs#smallImage"
63 72
            ],
64 73
            "type": "union",
65 74
            "description": "The collection's avatar/profile image as a URI or image blob."
66 75
          },
67 76
          "banner": {
68 77
            "refs": [
69 78
              "org.hypercerts.defs#uri",
70 79
              "org.hypercerts.defs#largeImage"
71 80
            ],
72 81
            "type": "union",
73 82
            "description": "Larger horizontal image to display behind the collection view."
74 83
          },
75 84
          "location": {
76 85
            "ref": "com.atproto.repo.strongRef",
77 86
            "type": "ref",
78 87
            "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."
79 88
          },
80 89
          "createdAt": {
81 90
            "type": "string",
82 91
            "format": "datetime",
83 92
            "description": "Client-declared timestamp when this record was originally created"
84 93
          },
85 94
          "signatures": {
86 95
            "ref": "app.certified.signature.defs#list",
87 96
            "type": "ref",
88 97
            "description": "Optional cryptographic signatures attesting to this record's content."
89 98
          },
90 99
          "description": {
91 100
            "refs": [
92 101
              "org.hypercerts.defs#descriptionString",
93 102
              "pub.leaflet.pages.linearDocument",
94 103
              "com.atproto.repo.strongRef"
95 104
            ],
96 105
            "type": "union",
97 106
            "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."
98 107
          },
99 108
          "shortDescription": {
100 109
            "type": "string",
101 110
            "maxLength": 3000,
102 111
            "description": "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
103 112
            "maxGraphemes": 300
104 113
          },
105 114
          "shortDescriptionFacets": {
106 115
            "type": "array",
107 116
            "items": {
108 117
              "ref": "app.bsky.richtext.facet",
109 118
              "type": "ref"
110 119
            },
111 120
            "description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
112 121
          }
113 122
        }
114 123
      },
115 124
      "description": "A collection/group of items (activities and/or other collections). Collections support recursive nesting."
116 125
    }
117 126
  },
118 127
  "$type": "com.atproto.lexicon.schema",
119 128
  "lexicon": 1
120 129
}

Compare Other Versions

Lexicon Garden

@