org.hypercerts.claim.activity

hypercerts.org

Schema Diff

+9 -5

From

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

To

CID
bafyreiaaiznuryq...
Indexed At
2026-04-07 22:42 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

1 breaking change, 6 non-breaking changes.

Breaking Changes (1)
  • KindChanged KindChanged { vertex_id: "org.hypercerts.claim.activity:body.description", old_kind: "ref", new_kind: "union" }
Non-Breaking Changes (6)
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant0" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant1" }
  • AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant2" }
  • AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant0" }
  • AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant1" }
  • AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant2" }

Additional Notes

  • Breaking: KindChanged { vertex_id: "org.hypercerts.claim.activity:body.description", old_kind: "ref", new_kind: "union" }
  • Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
  • Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
1 1
{
2 2
  "id": "org.hypercerts.claim.activity",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "any",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "title",
11 11
          "shortDescription",
12 12
          "createdAt"
13 13
        ],
14 14
        "properties": {
15 15
          "image": {
16 16
            "refs": [
17 17
              "org.hypercerts.defs#uri",
18 18
              "org.hypercerts.defs#smallImage"
19 19
            ],
20 20
            "type": "union",
21 21
            "description": "The hypercert visual representation as a URI or image blob."
22 22
          },
23 23
          "title": {
24 24
            "type": "string",
25 25
            "maxLength": 256,
26 26
            "description": "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')"
27 27
          },
28 28
          "rights": {
29 29
            "ref": "com.atproto.repo.strongRef",
30 30
            "type": "ref",
31 31
            "description": "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
32 32
          },
33 33
          "endDate": {
34 34
            "type": "string",
35 35
            "format": "datetime",
36 36
            "description": "When the work ended"
37 37
          },
38 38
          "createdAt": {
39 39
            "type": "string",
40 40
            "format": "datetime",
41 41
            "description": "Client-declared timestamp when this record was originally created"
42 42
          },
43 43
          "locations": {
44 44
            "type": "array",
45 45
            "items": {
46 46
              "ref": "com.atproto.repo.strongRef",
47 47
              "type": "ref"
48 48
            },
49 49
            "maxLength": 1000,
50 50
            "description": "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location."
51 51
          },
52 52
          "startDate": {
53 53
            "type": "string",
54 54
            "format": "datetime",
55 55
            "description": "When the work began"
56 56
          },
57 57
          "workScope": {
58 58
            "refs": [
59 59
              "org.hypercerts.workscope.cel",
60 60
              "#workScopeString"
61 61
            ],
62 62
            "type": "union",
63 63
            "description": "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes."
64 64
          },
65 65
          "description": {
66 -
            "ref": "pub.leaflet.pages.linearDocument#main",
67 -
            "type": "ref",
68 -
            "description": "Rich-text description, represented as a Leaflet linear document."
66 +
            "refs": [
67 +
              "org.hypercerts.defs#descriptionString",
68 +
              "pub.leaflet.pages.linearDocument",
69 +
              "com.atproto.repo.strongRef"
70 +
            ],
71 +
            "type": "union",
72 +
            "description": "Long-form description of the activity. 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."
69 73
          },
70 74
          "contributors": {
71 75
            "type": "array",
72 76
            "items": {
73 77
              "ref": "#contributor",
74 78
              "type": "ref"
75 79
            },
76 -
            "maxLength": 1000,
77 80
            "description": "An array of contributor objects, each containing contributor information, weight, and contribution details."
78 81
          },
79 82
          "shortDescription": {
80 83
            "type": "string",
81 84
            "maxLength": 3000,
82 85
            "description": "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
83 86
            "maxGraphemes": 300
84 87
          },
85 88
          "shortDescriptionFacets": {
86 89
            "type": "array",
87 90
            "items": {
88 91
              "ref": "app.bsky.richtext.facet",
89 92
              "type": "ref"
90 93
            },
91 94
            "description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
92 95
          }
93 96
        }
94 97
      },
95 98
      "description": "A hypercert record tracking impact work."
96 99
    },
97 100
    "contributor": {
98 101
      "type": "object",
99 102
      "required": [
100 103
        "contributorIdentity"
101 104
      ],
102 105
      "properties": {
103 106
        "contributionWeight": {
104 107
          "type": "string",
105 108
          "maxLength": 100,
106 109
          "description": "The relative weight/importance of this contribution (stored as a string to avoid float precision issues). Must be a positive numeric value. Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed."
107 110
        },
108 111
        "contributionDetails": {
109 112
          "refs": [
110 113
            "#contributorRole",
111 114
            "com.atproto.repo.strongRef"
112 115
          ],
113 116
          "type": "union",
114 117
          "description": "Inline contribution role object with a role string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record. The record referenced must conform with the lexicon org.hypercerts.claim.contribution."
115 118
        },
116 119
        "contributorIdentity": {
117 120
          "refs": [
118 121
            "#contributorIdentity",
119 122
            "com.atproto.repo.strongRef"
120 123
          ],
121 124
          "type": "union",
122 125
          "description": "Inline contributor identity object with an identity string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record. The record referenced must conform with the lexicon org.hypercerts.claim.contributorInformation."
123 126
        }
124 -
      }
127 +
      },
128 +
      "description": "A contributor to the activity, with identity, weight, and contribution details."
125 129
    },
126 130
    "contributorRole": {
127 131
      "type": "object",
128 132
      "required": [
129 133
        "role"
130 134
      ],
131 135
      "properties": {
132 136
        "role": {
133 137
          "type": "string",
134 138
          "maxLength": 1000,
135 139
          "description": "The contribution role or details.",
136 140
          "maxGraphemes": 100
137 141
        }
138 142
      },
139 143
      "description": "Contribution details as a string."
140 144
    },
141 145
    "workScopeString": {
142 146
      "type": "object",
143 147
      "required": [
144 148
        "scope"
145 149
      ],
146 150
      "properties": {
147 151
        "scope": {
148 152
          "type": "string",
149 153
          "maxLength": 1000,
150 154
          "description": "The work scope description string.",
151 155
          "maxGraphemes": 100
152 156
        }
153 157
      },
154 158
      "description": "A free-form string describing the work scope for simple or legacy scopes."
155 159
    },
156 160
    "contributorIdentity": {
157 161
      "type": "object",
158 162
      "required": [
159 163
        "identity"
160 164
      ],
161 165
      "properties": {
162 166
        "identity": {
163 167
          "type": "string",
164 168
          "maxLength": 1000,
165 169
          "description": "The contributor identity string (DID or identifier).",
166 170
          "maxGraphemes": 100
167 171
        }
168 172
      },
169 173
      "description": "Contributor information as a string (DID or identifier)."
170 174
    }
171 175
  },
172 176
  "$type": "com.atproto.lexicon.schema",
173 177
  "lexicon": 1
174 178
}

Compare Other Versions

Lexicon Garden

@