@hypercerts-org/lexicon 0.10.0-beta.9 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +702 -0
  2. package/README.md +278 -9
  3. package/SCHEMAS.md +440 -143
  4. package/dist/exports.d.ts +827 -294
  5. package/dist/exports.d.ts.map +1 -1
  6. package/dist/generated/exports.d.ts +827 -294
  7. package/dist/generated/exports.d.ts.map +1 -1
  8. package/dist/generated/lexicons.d.ts +1631 -625
  9. package/dist/generated/lexicons.d.ts.map +1 -1
  10. package/dist/generated/types/app/certified/actor/organization.d.ts +32 -0
  11. package/dist/generated/types/app/certified/actor/organization.d.ts.map +1 -0
  12. package/dist/generated/types/app/certified/actor/profile.d.ts +30 -0
  13. package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -0
  14. package/dist/generated/types/app/certified/badge/award.d.ts +2 -0
  15. package/dist/generated/types/app/certified/badge/award.d.ts.map +1 -1
  16. package/dist/generated/types/app/certified/badge/response.d.ts +1 -1
  17. package/dist/generated/types/app/certified/badge/response.d.ts.map +1 -1
  18. package/dist/generated/types/app/certified/defs.d.ts +11 -1
  19. package/dist/generated/types/app/certified/defs.d.ts.map +1 -1
  20. package/dist/generated/types/app/certified/location.d.ts +13 -5
  21. package/dist/generated/types/app/certified/location.d.ts.map +1 -1
  22. package/dist/generated/types/org/hyperboards/board.d.ts +75 -0
  23. package/dist/generated/types/org/hyperboards/board.d.ts.map +1 -0
  24. package/dist/generated/types/org/hyperboards/displayProfile.d.ts +31 -0
  25. package/dist/generated/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  26. package/dist/generated/types/org/hypercerts/claim/activity.d.ts +30 -11
  27. package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  28. package/dist/generated/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  29. package/dist/generated/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  30. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  31. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  32. package/dist/generated/types/org/hypercerts/claim/rights.d.ts +3 -3
  33. package/dist/generated/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  34. package/dist/generated/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  35. package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -0
  36. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  37. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  38. package/dist/generated/types/org/hypercerts/context/attachment.d.ts +35 -0
  39. package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  40. package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts/context}/evaluation.d.ts +15 -15
  41. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  42. package/dist/generated/types/org/hypercerts/context/measurement.d.ts +43 -0
  43. package/dist/generated/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  44. package/dist/generated/types/org/hypercerts/defs.d.ts +8 -44
  45. package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
  46. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +1 -1
  47. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  48. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts +20 -0
  49. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  50. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts +36 -0
  51. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  52. package/dist/index.cjs +2554 -1219
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.mjs +2502 -1191
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/lexicons.cjs +932 -397
  57. package/dist/lexicons.cjs.map +1 -1
  58. package/dist/lexicons.d.ts +1631 -625
  59. package/dist/lexicons.d.ts.map +1 -1
  60. package/dist/lexicons.mjs +932 -397
  61. package/dist/lexicons.mjs.map +1 -1
  62. package/dist/types/app/certified/actor/organization.d.ts +32 -0
  63. package/dist/types/app/certified/actor/organization.d.ts.map +1 -0
  64. package/dist/types/app/certified/actor/profile.d.ts +30 -0
  65. package/dist/types/app/certified/actor/profile.d.ts.map +1 -0
  66. package/dist/types/app/certified/badge/award.d.ts +2 -0
  67. package/dist/types/app/certified/badge/award.d.ts.map +1 -1
  68. package/dist/types/app/certified/badge/response.d.ts +1 -1
  69. package/dist/types/app/certified/badge/response.d.ts.map +1 -1
  70. package/dist/types/app/certified/defs.d.ts +11 -1
  71. package/dist/types/app/certified/defs.d.ts.map +1 -1
  72. package/dist/types/app/certified/location.d.ts +13 -5
  73. package/dist/types/app/certified/location.d.ts.map +1 -1
  74. package/dist/types/org/hyperboards/board.d.ts +75 -0
  75. package/dist/types/org/hyperboards/board.d.ts.map +1 -0
  76. package/dist/types/org/hyperboards/displayProfile.d.ts +31 -0
  77. package/dist/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  78. package/dist/types/org/hypercerts/claim/activity.d.ts +30 -11
  79. package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  80. package/dist/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  81. package/dist/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  82. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  83. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  84. package/dist/types/org/hypercerts/claim/rights.d.ts +3 -3
  85. package/dist/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  86. package/dist/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  87. package/dist/types/org/hypercerts/collection.d.ts.map +1 -0
  88. package/dist/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  89. package/dist/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  90. package/dist/types/org/hypercerts/context/attachment.d.ts +35 -0
  91. package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  92. package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts/context}/evaluation.d.ts +15 -15
  93. package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  94. package/dist/types/org/hypercerts/context/measurement.d.ts +43 -0
  95. package/dist/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  96. package/dist/types/org/hypercerts/defs.d.ts +8 -44
  97. package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
  98. package/dist/types/org/hypercerts/funding/receipt.d.ts +1 -1
  99. package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  100. package/dist/types/org/hypercerts/workscope/cel.d.ts +20 -0
  101. package/dist/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  102. package/dist/types/org/hypercerts/workscope/tag.d.ts +36 -0
  103. package/dist/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  104. package/lexicons/app/certified/actor/organization.json +70 -0
  105. package/lexicons/app/certified/actor/profile.json +61 -0
  106. package/lexicons/app/certified/badge/award.json +8 -1
  107. package/lexicons/app/certified/badge/definition.json +8 -3
  108. package/lexicons/app/certified/badge/response.json +3 -2
  109. package/lexicons/app/certified/defs.json +11 -3
  110. package/lexicons/app/certified/location.json +29 -6
  111. package/lexicons/org/hyperboards/board.json +152 -0
  112. package/lexicons/org/hyperboards/displayProfile.json +64 -0
  113. package/lexicons/org/hypercerts/claim/activity.json +57 -39
  114. package/lexicons/org/hypercerts/claim/{contributionDetails.json → contribution.json} +4 -4
  115. package/lexicons/org/hypercerts/claim/contributorInformation.json +3 -2
  116. package/lexicons/org/hypercerts/claim/rights.json +5 -3
  117. package/lexicons/org/hypercerts/{claim/collection.json → collection.json} +15 -7
  118. package/lexicons/org/hypercerts/context/acknowledgement.json +42 -0
  119. package/lexicons/org/hypercerts/context/attachment.json +77 -0
  120. package/lexicons/org/hypercerts/{claim → context}/evaluation.json +22 -22
  121. package/lexicons/org/hypercerts/context/measurement.json +107 -0
  122. package/lexicons/org/hypercerts/defs.json +14 -89
  123. package/lexicons/org/hypercerts/funding/receipt.json +12 -6
  124. package/lexicons/org/hypercerts/workscope/cel.json +39 -0
  125. package/lexicons/org/hypercerts/workscope/tag.json +87 -0
  126. package/package.json +2 -2
  127. package/dist/generated/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  128. package/dist/generated/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  129. package/dist/generated/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  130. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts +0 -29
  131. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  132. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts +0 -30
  133. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  134. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  135. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  136. package/dist/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  137. package/dist/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  138. package/dist/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  139. package/dist/types/org/hypercerts/claim/evidence.d.ts +0 -29
  140. package/dist/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  141. package/dist/types/org/hypercerts/claim/measurement.d.ts +0 -30
  142. package/dist/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  143. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  144. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  145. package/lexicons/org/hypercerts/claim/evidence.json +0 -57
  146. package/lexicons/org/hypercerts/claim/measurement.json +0 -70
  147. package/lexicons/org/hypercerts/helper/workScopeTag.json +0 -65
package/dist/index.mjs CHANGED
@@ -16,7 +16,7 @@ function is$type($type, id, hash) {
16
16
  $type.startsWith(id) &&
17
17
  $type.endsWith(hash);
18
18
  }
19
- function is$typed$g(v, id, hash) {
19
+ function is$typed$n(v, id, hash) {
20
20
  return isObject(v) && '$type' in v && is$type(v.$type, id, hash);
21
21
  }
22
22
  function maybe$typed(v, id, hash) {
@@ -37,6 +37,137 @@ function asPredicate(validate) {
37
37
  * GENERATED CODE - DO NOT MODIFY
38
38
  */
39
39
  const schemaDict = {
40
+ AppCertifiedActorOrganization: {
41
+ lexicon: 1,
42
+ id: 'app.certified.actor.organization',
43
+ defs: {
44
+ main: {
45
+ type: 'record',
46
+ description: 'Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.',
47
+ key: 'literal:self',
48
+ record: {
49
+ type: 'object',
50
+ required: ['createdAt'],
51
+ properties: {
52
+ organizationType: {
53
+ type: 'array',
54
+ description: "Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative').",
55
+ items: {
56
+ type: 'string',
57
+ maxLength: 128,
58
+ maxGraphemes: 100,
59
+ },
60
+ maxLength: 10,
61
+ },
62
+ urls: {
63
+ type: 'array',
64
+ description: 'Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL.',
65
+ items: {
66
+ type: 'ref',
67
+ ref: 'lex:app.certified.actor.organization#urlItem',
68
+ },
69
+ },
70
+ location: {
71
+ type: 'ref',
72
+ ref: 'lex:com.atproto.repo.strongRef',
73
+ description: 'A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location.',
74
+ },
75
+ foundedDate: {
76
+ type: 'string',
77
+ format: 'datetime',
78
+ description: "When the organization was established. Stored as datetime per ATProto conventions (no date-only format exists). Clients should use midnight UTC (e.g., '2005-01-01T00:00:00.000Z'); consumers should treat only the date portion as canonical.",
79
+ },
80
+ createdAt: {
81
+ type: 'string',
82
+ format: 'datetime',
83
+ description: 'Client-declared timestamp when this record was originally created.',
84
+ },
85
+ },
86
+ },
87
+ },
88
+ urlItem: {
89
+ type: 'object',
90
+ description: 'A labeled URL reference.',
91
+ required: ['url'],
92
+ properties: {
93
+ url: {
94
+ type: 'string',
95
+ format: 'uri',
96
+ description: 'The URL.',
97
+ maxLength: 10000,
98
+ maxGraphemes: 2048,
99
+ },
100
+ label: {
101
+ type: 'string',
102
+ description: "Optional human-readable label for this URL (e.g. 'Support page', 'Donation page').",
103
+ maxLength: 640,
104
+ maxGraphemes: 64,
105
+ },
106
+ },
107
+ },
108
+ },
109
+ },
110
+ AppCertifiedActorProfile: {
111
+ lexicon: 1,
112
+ id: 'app.certified.actor.profile',
113
+ defs: {
114
+ main: {
115
+ type: 'record',
116
+ description: 'A declaration of a Certified account profile.',
117
+ key: 'literal:self',
118
+ record: {
119
+ type: 'object',
120
+ required: ['createdAt'],
121
+ properties: {
122
+ displayName: {
123
+ type: 'string',
124
+ description: 'Display name for the account',
125
+ maxGraphemes: 64,
126
+ maxLength: 640,
127
+ },
128
+ description: {
129
+ type: 'string',
130
+ description: 'Free-form profile description text.',
131
+ maxGraphemes: 256,
132
+ maxLength: 2560,
133
+ },
134
+ pronouns: {
135
+ type: 'string',
136
+ description: 'Free-form pronouns text.',
137
+ maxGraphemes: 20,
138
+ maxLength: 200,
139
+ },
140
+ website: {
141
+ type: 'string',
142
+ format: 'uri',
143
+ description: 'Account website URL',
144
+ },
145
+ avatar: {
146
+ type: 'union',
147
+ refs: [
148
+ 'lex:org.hypercerts.defs#uri',
149
+ 'lex:org.hypercerts.defs#smallImage',
150
+ ],
151
+ description: "Small image to be displayed next to posts from account. AKA, 'profile picture'",
152
+ },
153
+ banner: {
154
+ type: 'union',
155
+ refs: [
156
+ 'lex:org.hypercerts.defs#uri',
157
+ 'lex:org.hypercerts.defs#largeImage',
158
+ ],
159
+ description: 'Larger horizontal image to display behind profile view.',
160
+ },
161
+ createdAt: {
162
+ type: 'string',
163
+ format: 'datetime',
164
+ description: 'Client-declared timestamp when this record was originally created',
165
+ },
166
+ },
167
+ },
168
+ },
169
+ },
170
+ },
40
171
  AppCertifiedBadgeAward: {
41
172
  lexicon: 1,
42
173
  id: 'app.certified.badge.award',
@@ -65,6 +196,13 @@ const schemaDict = {
65
196
  note: {
66
197
  type: 'string',
67
198
  description: 'Optional statement explaining the reason for this badge award.',
199
+ maxLength: 500,
200
+ },
201
+ url: {
202
+ type: 'string',
203
+ format: 'uri',
204
+ description: 'Optional URL the badge award links to.',
205
+ maxLength: 2048,
68
206
  },
69
207
  createdAt: {
70
208
  type: 'string',
@@ -91,10 +229,12 @@ const schemaDict = {
91
229
  badgeType: {
92
230
  type: 'string',
93
231
  description: 'Category of the badge (e.g. endorsement, participation, affiliation).',
232
+ maxLength: 100,
94
233
  },
95
234
  title: {
96
235
  type: 'string',
97
236
  description: 'Human-readable title of the badge.',
237
+ maxLength: 256,
98
238
  },
99
239
  icon: {
100
240
  type: 'blob',
@@ -110,10 +250,13 @@ const schemaDict = {
110
250
  description: {
111
251
  type: 'string',
112
252
  description: 'Optional short statement describing what the badge represents.',
253
+ maxLength: 5000,
254
+ maxGraphemes: 500,
113
255
  },
114
256
  allowedIssuers: {
115
257
  type: 'array',
116
258
  description: 'Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.',
259
+ maxLength: 100,
117
260
  items: {
118
261
  type: 'ref',
119
262
  ref: 'lex:app.certified.defs#did',
@@ -148,12 +291,13 @@ const schemaDict = {
148
291
  },
149
292
  response: {
150
293
  type: 'string',
151
- enum: ['accepted', 'rejected'],
294
+ knownValues: ['accepted', 'rejected'],
152
295
  description: 'The recipient’s response for the badge (accepted or rejected).',
153
296
  },
154
297
  weight: {
155
298
  type: 'string',
156
299
  description: 'Optional relative weight for accepted badges, assigned by the recipient.',
300
+ maxLength: 50,
157
301
  },
158
302
  createdAt: {
159
303
  type: 'string',
@@ -171,9 +315,17 @@ const schemaDict = {
171
315
  description: 'Common type definitions used across certified protocols.',
172
316
  defs: {
173
317
  did: {
174
- type: 'string',
175
- format: 'did',
318
+ type: 'object',
176
319
  description: 'A Decentralized Identifier (DID) string.',
320
+ required: ['did'],
321
+ properties: {
322
+ did: {
323
+ type: 'string',
324
+ format: 'did',
325
+ description: 'The DID string value.',
326
+ maxLength: 256,
327
+ },
328
+ },
177
329
  },
178
330
  },
179
331
  },
@@ -208,8 +360,17 @@ const schemaDict = {
208
360
  },
209
361
  locationType: {
210
362
  type: 'string',
211
- description: 'An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)',
212
- knownValues: ['coordinate-decimal', 'geojson-point'],
363
+ description: 'An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point). See the Location Protocol spec for the full registry: https://spec.decentralizedgeo.org/specification/location-types/#location-type-registry',
364
+ knownValues: [
365
+ 'coordinate-decimal',
366
+ 'geojson-point',
367
+ 'geojson',
368
+ 'h3',
369
+ 'geohash',
370
+ 'wkt',
371
+ 'address',
372
+ 'scaledCoordinates',
373
+ ],
213
374
  maxLength: 20,
214
375
  },
215
376
  location: {
@@ -217,18 +378,19 @@ const schemaDict = {
217
378
  refs: [
218
379
  'lex:org.hypercerts.defs#uri',
219
380
  'lex:org.hypercerts.defs#smallBlob',
381
+ 'lex:app.certified.location#string',
220
382
  ],
221
- description: 'The location of where the work was performed as a URI or blob.',
383
+ description: 'The location of where the work was performed as a URI, blob, or inline string.',
222
384
  },
223
385
  name: {
224
386
  type: 'string',
225
- description: 'Optional name for this location',
387
+ description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
226
388
  maxLength: 1000,
227
389
  maxGraphemes: 100,
228
390
  },
229
391
  description: {
230
392
  type: 'string',
231
- description: 'Optional description for this location',
393
+ description: 'Additional context about this location, such as its significance to the work or specific boundaries',
232
394
  maxLength: 2000,
233
395
  maxGraphemes: 500,
234
396
  },
@@ -240,6 +402,19 @@ const schemaDict = {
240
402
  },
241
403
  },
242
404
  },
405
+ string: {
406
+ type: 'object',
407
+ required: ['string'],
408
+ description: 'A location represented as a string, e.g. coordinates or a small GeoJSON string.',
409
+ properties: {
410
+ string: {
411
+ type: 'string',
412
+ description: 'The location string value',
413
+ maxLength: 10000,
414
+ maxGraphemes: 1000,
415
+ },
416
+ },
417
+ },
243
418
  },
244
419
  },
245
420
  ComAtprotoRepoStrongRef: {
@@ -263,203 +438,319 @@ const schemaDict = {
263
438
  },
264
439
  },
265
440
  },
266
- OrgHypercertsClaimActivity: {
441
+ OrgHyperboardsBoard: {
267
442
  lexicon: 1,
268
- id: 'org.hypercerts.claim.activity',
443
+ id: 'org.hyperboards.board',
269
444
  defs: {
270
445
  main: {
271
446
  type: 'record',
272
- description: 'A hypercert record tracking impact work.',
273
- key: 'any',
447
+ description: "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.",
448
+ key: 'tid',
274
449
  record: {
275
450
  type: 'object',
276
- required: ['title', 'shortDescription', 'createdAt'],
451
+ required: ['subject', 'createdAt'],
277
452
  properties: {
278
- title: {
279
- type: 'string',
280
- description: 'Title of the hypercert.',
281
- maxLength: 256,
282
- },
283
- shortDescription: {
284
- type: 'string',
285
- description: 'Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.',
286
- maxLength: 3000,
287
- maxGraphemes: 300,
288
- },
289
- shortDescriptionFacets: {
290
- type: 'array',
291
- description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
292
- items: {
293
- type: 'ref',
294
- ref: 'lex:app.bsky.richtext.facet',
295
- },
296
- },
297
- description: {
298
- type: 'string',
299
- description: 'Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.',
300
- maxLength: 30000,
301
- maxGraphemes: 3000,
302
- },
303
- descriptionFacets: {
304
- type: 'array',
305
- description: 'Rich text annotations for `description` (mentions, URLs, hashtags, etc).',
306
- items: {
307
- type: 'ref',
308
- ref: 'lex:app.bsky.richtext.facet',
309
- },
310
- },
311
- image: {
312
- type: 'union',
313
- refs: [
314
- 'lex:org.hypercerts.defs#uri',
315
- 'lex:org.hypercerts.defs#smallImage',
316
- ],
317
- description: 'The hypercert visual representation as a URI or image blob.',
318
- },
319
- workScope: {
320
- type: 'union',
321
- refs: [
322
- 'lex:org.hypercerts.defs#workScopeAll',
323
- 'lex:org.hypercerts.defs#workScopeAny',
324
- 'lex:org.hypercerts.defs#workScopeNot',
325
- 'lex:org.hypercerts.defs#workScopeAtom',
326
- ],
327
- description: 'Work scope logic expression using boolean operators (all/any/not) and atomic scope references.',
328
- },
329
- startDate: {
330
- type: 'string',
331
- format: 'datetime',
332
- description: 'When the work began',
333
- },
334
- endDate: {
335
- type: 'string',
336
- format: 'datetime',
337
- description: 'When the work ended',
338
- },
339
- contributors: {
340
- type: 'array',
341
- description: 'An array of contributor objects, each containing contributor information, weight, and contribution details.',
342
- items: {
343
- type: 'ref',
344
- ref: 'lex:org.hypercerts.claim.activity#contributor',
345
- },
346
- },
347
- rights: {
453
+ subject: {
348
454
  type: 'ref',
349
455
  ref: 'lex:com.atproto.repo.strongRef',
350
- description: 'A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.',
456
+ description: 'Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes.',
351
457
  },
352
- locations: {
458
+ config: {
459
+ type: 'ref',
460
+ ref: 'lex:org.hyperboards.board#boardConfig',
461
+ description: 'Board-level visual configuration (background, colors, aspect ratio).',
462
+ },
463
+ contributorConfigs: {
353
464
  type: 'array',
354
- description: 'An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.',
465
+ description: 'Per-contributor configuration entries for this board.',
466
+ maxLength: 1000,
355
467
  items: {
356
468
  type: 'ref',
357
- ref: 'lex:com.atproto.repo.strongRef',
469
+ ref: 'lex:org.hyperboards.board#contributorConfig',
358
470
  },
359
471
  },
360
472
  createdAt: {
361
473
  type: 'string',
362
474
  format: 'datetime',
363
- description: 'Client-declared timestamp when this record was originally created',
475
+ description: 'Client-declared timestamp when this record was originally created.',
364
476
  },
365
477
  },
366
478
  },
367
479
  },
368
- contributor: {
480
+ boardConfig: {
369
481
  type: 'object',
370
- required: ['contributorIdentity'],
482
+ description: "Visual configuration for a hyperboard's background, colors, and layout.",
371
483
  properties: {
372
- contributorIdentity: {
484
+ backgroundType: {
485
+ type: 'string',
486
+ description: 'Type of background content.',
487
+ knownValues: ['image', 'iframe'],
488
+ maxLength: 10,
489
+ },
490
+ backgroundImage: {
373
491
  type: 'union',
374
492
  refs: [
375
- 'lex:org.hypercerts.claim.activity#contributorIdentity',
376
- 'lex:com.atproto.repo.strongRef',
493
+ 'lex:org.hypercerts.defs#uri',
494
+ 'lex:org.hypercerts.defs#smallImage',
377
495
  ],
378
- description: 'Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record.',
496
+ description: 'Background image as a URI or image blob.',
379
497
  },
380
- contributionWeight: {
498
+ backgroundIframeUrl: {
381
499
  type: 'string',
382
- 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.',
500
+ format: 'uri',
501
+ description: 'URI of the background iframe.',
502
+ maxLength: 2048,
383
503
  },
384
- contributionDetails: {
504
+ backgroundGrayscale: {
505
+ type: 'boolean',
506
+ description: 'Whether the background is rendered in grayscale. Default: true.',
507
+ },
508
+ backgroundOpacity: {
509
+ type: 'integer',
510
+ description: 'Background opacity as a percentage (0–100).',
511
+ minimum: 0,
512
+ maximum: 100,
513
+ },
514
+ backgroundColor: {
515
+ type: 'string',
516
+ description: "Background color as a hex string (e.g. '#ffffff').",
517
+ maxLength: 20,
518
+ },
519
+ borderColor: {
520
+ type: 'string',
521
+ description: "Border color as a hex string (e.g. '#000000').",
522
+ maxLength: 20,
523
+ },
524
+ grayscaleImages: {
525
+ type: 'boolean',
526
+ description: 'Whether contributor images are rendered in grayscale. Default: false.',
527
+ },
528
+ imageShape: {
529
+ type: 'string',
530
+ description: 'Shape used to crop contributor images on this board.',
531
+ knownValues: ['circular', 'square'],
532
+ maxLength: 20,
533
+ },
534
+ aspectRatio: {
535
+ type: 'string',
536
+ description: 'Display aspect ratio of the board.',
537
+ knownValues: ['16:9', '4:3', '1:1'],
538
+ maxLength: 10,
539
+ },
540
+ },
541
+ },
542
+ contributorConfig: {
543
+ type: 'object',
544
+ description: 'Configuration for a specific contributor within a board. Values serve as fallbacks when the contributor has not defined them on their profile. It can also be used to override contributor settings on this board without changing their global profile.',
545
+ required: ['contributor'],
546
+ properties: {
547
+ contributor: {
385
548
  type: 'union',
386
549
  refs: [
387
- 'lex:org.hypercerts.claim.activity#contributorRole',
388
550
  'lex:com.atproto.repo.strongRef',
551
+ 'lex:org.hypercerts.claim.activity#contributorIdentity',
552
+ ],
553
+ description: 'Identifies the contributor being styled. A strong reference to an org.hypercerts.claim.contributorInformation record, or a contributorIdentity (DID or identifier string) for contributors without a dedicated record.',
554
+ },
555
+ override: {
556
+ type: 'boolean',
557
+ description: "When true, these values take precedence over the contributor's own profile and display settings. When false or omitted, they are only used as fallbacks if the contributor has not set their own settings.",
558
+ },
559
+ displayName: {
560
+ type: 'string',
561
+ description: 'Display name for this contributor on this board.',
562
+ maxLength: 640,
563
+ maxGraphemes: 64,
564
+ },
565
+ image: {
566
+ type: 'union',
567
+ refs: [
568
+ 'lex:org.hypercerts.defs#uri',
569
+ 'lex:org.hypercerts.defs#smallImage',
570
+ ],
571
+ description: 'Avatar or face image for this contributor on this board, as a URI or image blob.',
572
+ },
573
+ video: {
574
+ type: 'union',
575
+ refs: [
576
+ 'lex:org.hypercerts.defs#uri',
577
+ 'lex:org.hypercerts.defs#smallVideo',
578
+ ],
579
+ description: 'Video for this contributor, as a URI (embed/direct link) or uploaded video blob.',
580
+ },
581
+ hoverImage: {
582
+ type: 'union',
583
+ refs: [
584
+ 'lex:org.hypercerts.defs#uri',
585
+ 'lex:org.hypercerts.defs#smallImage',
389
586
  ],
390
- description: 'Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record.',
587
+ description: 'Image overlay shown when hovering over this contributor, as a URI or image blob.',
588
+ },
589
+ hoverIframeUrl: {
590
+ type: 'string',
591
+ format: 'uri',
592
+ description: 'Iframe overlay shown when hovering over this contributor.',
593
+ maxLength: 2048,
594
+ },
595
+ url: {
596
+ type: 'string',
597
+ format: 'uri',
598
+ description: 'Click-through link URL for this contributor.',
599
+ maxLength: 2048,
391
600
  },
392
601
  },
393
602
  },
394
- contributorIdentity: {
395
- type: 'string',
396
- description: 'Contributor information as a string (DID or identifier).',
397
- },
398
- contributorRole: {
399
- type: 'string',
400
- description: 'Contribution details as a string.',
401
- maxLength: 10000,
402
- maxGraphemes: 1000,
403
- },
404
603
  },
405
604
  },
406
- OrgHypercertsClaimCollection: {
605
+ OrgHyperboardsDisplayProfile: {
407
606
  lexicon: 1,
408
- id: 'org.hypercerts.claim.collection',
607
+ id: 'org.hyperboards.displayProfile',
409
608
  defs: {
410
609
  main: {
411
610
  type: 'record',
412
- description: 'A collection/group of items (activities and/or other collections). Collections support recursive nesting. Use app.certified.location as a sidecar (same TID) for location metadata.',
413
- key: 'tid',
611
+ description: "User-declared visual presentation defaults for how a contributor appears on hyperboards. Stored in the contributor's own PDS and reusable across multiple boards.",
612
+ key: 'literal:self',
414
613
  record: {
415
614
  type: 'object',
416
- required: ['title', 'items', 'createdAt'],
615
+ required: ['createdAt'],
417
616
  properties: {
418
- type: {
419
- type: 'string',
420
- description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
421
- },
422
- title: {
617
+ displayName: {
423
618
  type: 'string',
424
- description: 'The title of this collection',
425
- maxLength: 800,
426
- maxGraphemes: 80,
619
+ description: 'Display name override for this user on hyperboards.',
620
+ maxLength: 640,
621
+ maxGraphemes: 64,
427
622
  },
428
- shortDescription: {
429
- type: 'string',
430
- maxLength: 3000,
623
+ image: {
624
+ type: 'union',
625
+ refs: [
626
+ 'lex:org.hypercerts.defs#uri',
627
+ 'lex:org.hypercerts.defs#smallImage',
628
+ ],
629
+ description: 'Avatar or face image override for this user on hyperboards, as a URI or image blob.',
630
+ },
631
+ video: {
632
+ type: 'union',
633
+ refs: [
634
+ 'lex:org.hypercerts.defs#uri',
635
+ 'lex:org.hypercerts.defs#smallVideo',
636
+ ],
637
+ description: 'Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob.',
638
+ },
639
+ hoverImage: {
640
+ type: 'union',
641
+ refs: [
642
+ 'lex:org.hypercerts.defs#uri',
643
+ 'lex:org.hypercerts.defs#smallImage',
644
+ ],
645
+ description: 'Default hover image for this user across boards, as a URI or image blob.',
646
+ },
647
+ hoverIframeUrl: {
648
+ type: 'string',
649
+ format: 'uri',
650
+ description: 'Default hover iframe URL for this user across boards.',
651
+ maxLength: 2048,
652
+ },
653
+ url: {
654
+ type: 'string',
655
+ format: 'uri',
656
+ description: 'Default click-through link URL for this user across boards.',
657
+ maxLength: 2048,
658
+ },
659
+ createdAt: {
660
+ type: 'string',
661
+ format: 'datetime',
662
+ description: 'Client-declared timestamp when this record was originally created.',
663
+ },
664
+ },
665
+ },
666
+ },
667
+ },
668
+ },
669
+ OrgHypercertsClaimActivity: {
670
+ lexicon: 1,
671
+ id: 'org.hypercerts.claim.activity',
672
+ defs: {
673
+ main: {
674
+ type: 'record',
675
+ description: 'A hypercert record tracking impact work.',
676
+ key: 'any',
677
+ record: {
678
+ type: 'object',
679
+ required: ['title', 'shortDescription', 'createdAt'],
680
+ properties: {
681
+ title: {
682
+ type: 'string',
683
+ description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
684
+ maxLength: 256,
685
+ },
686
+ shortDescription: {
687
+ type: 'string',
688
+ description: 'Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.',
689
+ maxLength: 3000,
431
690
  maxGraphemes: 300,
432
- description: 'Short summary of this collection, suitable for previews and list views',
691
+ },
692
+ shortDescriptionFacets: {
693
+ type: 'array',
694
+ description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
695
+ items: {
696
+ type: 'ref',
697
+ ref: 'lex:app.bsky.richtext.facet',
698
+ },
433
699
  },
434
700
  description: {
435
701
  type: 'ref',
436
702
  ref: 'lex:pub.leaflet.pages.linearDocument#main',
437
703
  description: 'Rich-text description, represented as a Leaflet linear document.',
438
704
  },
439
- avatar: {
705
+ image: {
440
706
  type: 'union',
441
707
  refs: [
442
708
  'lex:org.hypercerts.defs#uri',
443
709
  'lex:org.hypercerts.defs#smallImage',
444
710
  ],
445
- description: "The collection's avatar/profile image as a URI or image blob.",
711
+ description: 'The hypercert visual representation as a URI or image blob.',
446
712
  },
447
- banner: {
713
+ contributors: {
714
+ type: 'array',
715
+ description: 'An array of contributor objects, each containing contributor information, weight, and contribution details.',
716
+ maxLength: 1000,
717
+ items: {
718
+ type: 'ref',
719
+ ref: 'lex:org.hypercerts.claim.activity#contributor',
720
+ },
721
+ },
722
+ workScope: {
448
723
  type: 'union',
449
724
  refs: [
450
- 'lex:org.hypercerts.defs#uri',
451
- 'lex:org.hypercerts.defs#largeImage',
725
+ 'lex:org.hypercerts.workscope.cel',
726
+ 'lex:org.hypercerts.claim.activity#workScopeString',
452
727
  ],
453
- description: 'Larger horizontal image to display behind the collection view.',
728
+ description: 'Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.',
454
729
  },
455
- items: {
730
+ startDate: {
731
+ type: 'string',
732
+ format: 'datetime',
733
+ description: 'When the work began',
734
+ },
735
+ endDate: {
736
+ type: 'string',
737
+ format: 'datetime',
738
+ description: 'When the work ended',
739
+ },
740
+ locations: {
456
741
  type: 'array',
457
- description: 'Array of items in this collection with optional weights.',
742
+ description: 'An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.',
743
+ maxLength: 1000,
458
744
  items: {
459
745
  type: 'ref',
460
- ref: 'lex:org.hypercerts.claim.collection#item',
746
+ ref: 'lex:com.atproto.repo.strongRef',
461
747
  },
462
748
  },
749
+ rights: {
750
+ type: 'ref',
751
+ ref: 'lex:com.atproto.repo.strongRef',
752
+ description: 'A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.',
753
+ },
463
754
  createdAt: {
464
755
  type: 'string',
465
756
  format: 'datetime',
@@ -468,26 +759,77 @@ const schemaDict = {
468
759
  },
469
760
  },
470
761
  },
471
- item: {
762
+ contributor: {
472
763
  type: 'object',
473
- required: ['itemIdentifier'],
764
+ required: ['contributorIdentity'],
474
765
  properties: {
475
- itemIdentifier: {
476
- type: 'ref',
477
- ref: 'lex:com.atproto.repo.strongRef',
478
- description: 'Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection).',
766
+ contributorIdentity: {
767
+ type: 'union',
768
+ refs: [
769
+ 'lex:org.hypercerts.claim.activity#contributorIdentity',
770
+ 'lex:com.atproto.repo.strongRef',
771
+ ],
772
+ 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.',
479
773
  },
480
- itemWeight: {
774
+ contributionWeight: {
481
775
  type: 'string',
482
- 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.',
776
+ 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.',
777
+ maxLength: 100,
778
+ },
779
+ contributionDetails: {
780
+ type: 'union',
781
+ refs: [
782
+ 'lex:org.hypercerts.claim.activity#contributorRole',
783
+ 'lex:com.atproto.repo.strongRef',
784
+ ],
785
+ 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.',
786
+ },
787
+ },
788
+ },
789
+ contributorIdentity: {
790
+ type: 'object',
791
+ description: 'Contributor information as a string (DID or identifier).',
792
+ required: ['identity'],
793
+ properties: {
794
+ identity: {
795
+ type: 'string',
796
+ description: 'The contributor identity string (DID or identifier).',
797
+ maxLength: 1000,
798
+ maxGraphemes: 100,
799
+ },
800
+ },
801
+ },
802
+ contributorRole: {
803
+ type: 'object',
804
+ description: 'Contribution details as a string.',
805
+ required: ['role'],
806
+ properties: {
807
+ role: {
808
+ type: 'string',
809
+ description: 'The contribution role or details.',
810
+ maxLength: 1000,
811
+ maxGraphemes: 100,
812
+ },
813
+ },
814
+ },
815
+ workScopeString: {
816
+ type: 'object',
817
+ description: 'A free-form string describing the work scope for simple or legacy scopes.',
818
+ required: ['scope'],
819
+ properties: {
820
+ scope: {
821
+ type: 'string',
822
+ description: 'The work scope description string.',
823
+ maxLength: 1000,
824
+ maxGraphemes: 100,
483
825
  },
484
826
  },
485
827
  },
486
828
  },
487
829
  },
488
- OrgHypercertsClaimContributionDetails: {
830
+ OrgHypercertsClaimContribution: {
489
831
  lexicon: 1,
490
- id: 'org.hypercerts.claim.contributionDetails',
832
+ id: 'org.hypercerts.claim.contribution',
491
833
  defs: {
492
834
  main: {
493
835
  type: 'record',
@@ -504,19 +846,19 @@ const schemaDict = {
504
846
  },
505
847
  contributionDescription: {
506
848
  type: 'string',
507
- description: 'What the contribution concretely was.',
849
+ description: 'Description of what the contribution concretely involved.',
508
850
  maxLength: 10000,
509
851
  maxGraphemes: 1000,
510
852
  },
511
853
  startDate: {
512
854
  type: 'string',
513
855
  format: 'datetime',
514
- description: 'When this contribution started. This should be a subset of the hypercert timeframe.',
856
+ description: "When this contribution started. Should fall within the parent hypercert's timeframe.",
515
857
  },
516
858
  endDate: {
517
859
  type: 'string',
518
860
  format: 'datetime',
519
- description: 'When this contribution finished. This should be a subset of the hypercert timeframe.',
861
+ description: "When this contribution finished. Should fall within the parent hypercert's timeframe.",
520
862
  },
521
863
  createdAt: {
522
864
  type: 'string',
@@ -542,11 +884,12 @@ const schemaDict = {
542
884
  properties: {
543
885
  identifier: {
544
886
  type: 'string',
545
- description: 'DID or a URI to a social profile of the contributor.',
887
+ description: 'DID (did:plc:...) or URI to a social profile of the contributor.',
888
+ maxLength: 2048,
546
889
  },
547
890
  displayName: {
548
891
  type: 'string',
549
- description: 'Display name of the contributor.',
892
+ description: 'Human-readable name for the contributor as it should appear in UI.',
550
893
  maxLength: 100,
551
894
  },
552
895
  image: {
@@ -567,87 +910,46 @@ const schemaDict = {
567
910
  },
568
911
  },
569
912
  },
570
- OrgHypercertsClaimEvaluation: {
913
+ OrgHypercertsClaimRights: {
571
914
  lexicon: 1,
572
- id: 'org.hypercerts.claim.evaluation',
915
+ id: 'org.hypercerts.claim.rights',
573
916
  defs: {
574
- score: {
575
- type: 'object',
576
- description: 'Overall score for an evaluation on a numeric scale.',
577
- required: ['min', 'max', 'value'],
578
- properties: {
579
- min: {
580
- type: 'integer',
581
- description: 'Minimum value of the scale, e.g. 0 or 1.',
582
- },
583
- max: {
584
- type: 'integer',
585
- description: 'Maximum value of the scale, e.g. 5 or 10.',
586
- },
587
- value: {
588
- type: 'integer',
589
- description: 'Score within the inclusive range [min, max].',
590
- },
591
- },
592
- },
593
917
  main: {
594
918
  type: 'record',
595
- description: 'An evaluation of a hypercert record (e.g. an activity and its impact).',
919
+ description: 'Describes the rights that a contributor and/or an owner has, such as whether the hypercert can be sold, transferred, and under what conditions.',
596
920
  key: 'tid',
597
921
  record: {
598
922
  type: 'object',
599
- required: ['evaluators', 'summary', 'createdAt'],
923
+ required: [
924
+ 'rightsName',
925
+ 'rightsType',
926
+ 'rightsDescription',
927
+ 'createdAt',
928
+ ],
600
929
  properties: {
601
- subject: {
602
- type: 'ref',
603
- ref: 'lex:com.atproto.repo.strongRef',
604
- description: 'A strong reference to what is being evaluated. (e.g activity, measurement, contribution, etc.)',
605
- },
606
- evaluators: {
607
- type: 'array',
608
- description: 'DIDs of the evaluators',
609
- items: {
610
- type: 'ref',
611
- ref: 'lex:app.certified.defs#did',
612
- },
613
- maxLength: 1000,
614
- },
615
- content: {
616
- type: 'array',
617
- description: 'Evaluation data (URIs or blobs) containing detailed reports or methodology',
618
- items: {
619
- type: 'union',
620
- refs: [
621
- 'lex:org.hypercerts.defs#uri',
622
- 'lex:org.hypercerts.defs#smallBlob',
623
- ],
624
- },
930
+ rightsName: {
931
+ type: 'string',
932
+ description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
625
933
  maxLength: 100,
626
934
  },
627
- measurements: {
628
- type: 'array',
629
- description: 'Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.claim.measurement',
630
- items: {
631
- type: 'ref',
632
- ref: 'lex:com.atproto.repo.strongRef',
633
- },
634
- maxLength: 100,
935
+ rightsType: {
936
+ type: 'string',
937
+ description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search",
938
+ maxLength: 10,
635
939
  },
636
- summary: {
940
+ rightsDescription: {
637
941
  type: 'string',
638
- description: 'Brief evaluation summary',
639
- maxLength: 5000,
942
+ description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
943
+ maxLength: 10000,
640
944
  maxGraphemes: 1000,
641
945
  },
642
- score: {
643
- type: 'ref',
644
- ref: 'lex:org.hypercerts.claim.evaluation#score',
645
- description: 'Optional overall score for this evaluation on a numeric scale.',
646
- },
647
- location: {
648
- type: 'ref',
649
- ref: 'lex:com.atproto.repo.strongRef',
650
- description: 'An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location.',
946
+ attachment: {
947
+ type: 'union',
948
+ refs: [
949
+ 'lex:org.hypercerts.defs#uri',
950
+ 'lex:org.hypercerts.defs#smallBlob',
951
+ ],
952
+ description: 'An attachment to define the rights further, e.g. a legal document.',
651
953
  },
652
954
  createdAt: {
653
955
  type: 'string',
@@ -659,52 +961,69 @@ const schemaDict = {
659
961
  },
660
962
  },
661
963
  },
662
- OrgHypercertsClaimEvidence: {
964
+ OrgHypercertsCollection: {
663
965
  lexicon: 1,
664
- id: 'org.hypercerts.claim.evidence',
966
+ id: 'org.hypercerts.collection',
665
967
  defs: {
666
968
  main: {
667
969
  type: 'record',
668
- description: 'A piece of evidence related to a hypercert record (e.g. an activity, project, claim, or evaluation). Evidence may support, clarify, or challenge the referenced subject.',
970
+ description: 'A collection/group of items (activities and/or other collections). Collections support recursive nesting.',
669
971
  key: 'tid',
670
972
  record: {
671
973
  type: 'object',
672
- required: ['content', 'title', 'createdAt'],
974
+ required: ['title', 'createdAt'],
673
975
  properties: {
674
- subject: {
675
- type: 'ref',
676
- ref: 'lex:com.atproto.repo.strongRef',
677
- description: 'A strong reference to the record this evidence relates to (e.g. an activity, project, claim, or evaluation).',
678
- },
679
- content: {
680
- type: 'union',
681
- refs: [
682
- 'lex:org.hypercerts.defs#uri',
683
- 'lex:org.hypercerts.defs#smallBlob',
684
- ],
685
- description: 'A piece of evidence (URI or blob) related to the subject record; it may support, clarify, or challenge a hypercert claim.',
976
+ type: {
977
+ type: 'string',
978
+ description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
979
+ maxLength: 64,
686
980
  },
687
981
  title: {
688
982
  type: 'string',
689
- maxLength: 256,
690
- description: 'Title to describe the nature of the evidence.',
983
+ description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
984
+ maxLength: 800,
985
+ maxGraphemes: 80,
691
986
  },
692
987
  shortDescription: {
693
988
  type: 'string',
694
989
  maxLength: 3000,
695
990
  maxGraphemes: 300,
696
- description: 'Short description explaining what this evidence shows.',
991
+ description: 'Short summary of this collection, suitable for previews and list views',
697
992
  },
698
993
  description: {
699
- type: 'string',
700
- description: 'Longer description describing the evidence in more detail.',
701
- maxLength: 30000,
702
- maxGraphemes: 3000,
994
+ type: 'ref',
995
+ ref: 'lex:pub.leaflet.pages.linearDocument#main',
996
+ description: 'Rich-text description, represented as a Leaflet linear document.',
703
997
  },
704
- relationType: {
705
- type: 'string',
706
- description: 'How this evidence relates to the subject.',
707
- knownValues: ['supports', 'challenges', 'clarifies'],
998
+ avatar: {
999
+ type: 'union',
1000
+ refs: [
1001
+ 'lex:org.hypercerts.defs#uri',
1002
+ 'lex:org.hypercerts.defs#smallImage',
1003
+ ],
1004
+ description: "The collection's avatar/profile image as a URI or image blob.",
1005
+ },
1006
+ banner: {
1007
+ type: 'union',
1008
+ refs: [
1009
+ 'lex:org.hypercerts.defs#uri',
1010
+ 'lex:org.hypercerts.defs#largeImage',
1011
+ ],
1012
+ description: 'Larger horizontal image to display behind the collection view.',
1013
+ },
1014
+ items: {
1015
+ type: 'array',
1016
+ description: 'Array of items in this collection with optional weights.',
1017
+ maxLength: 1000,
1018
+ items: {
1019
+ type: 'ref',
1020
+ ref: 'lex:org.hypercerts.collection#item',
1021
+ },
1022
+ },
1023
+ location: {
1024
+ type: 'ref',
1025
+ ref: 'lex:com.atproto.repo.strongRef',
1026
+ 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.",
708
1027
  },
709
1028
  createdAt: {
710
1029
  type: 'string',
@@ -714,116 +1033,208 @@ const schemaDict = {
714
1033
  },
715
1034
  },
716
1035
  },
1036
+ item: {
1037
+ type: 'object',
1038
+ required: ['itemIdentifier'],
1039
+ properties: {
1040
+ itemIdentifier: {
1041
+ type: 'ref',
1042
+ ref: 'lex:com.atproto.repo.strongRef',
1043
+ description: 'Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection).',
1044
+ },
1045
+ itemWeight: {
1046
+ type: 'string',
1047
+ 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.',
1048
+ maxLength: 100,
1049
+ },
1050
+ },
1051
+ },
717
1052
  },
718
1053
  },
719
- OrgHypercertsClaimMeasurement: {
1054
+ OrgHypercertsContextAcknowledgement: {
720
1055
  lexicon: 1,
721
- id: 'org.hypercerts.claim.measurement',
1056
+ id: 'org.hypercerts.context.acknowledgement',
722
1057
  defs: {
723
1058
  main: {
724
1059
  type: 'record',
725
- description: 'Measurement data related to a hypercert record (e.g. an activity and its impact).',
1060
+ description: "Acknowledges a record (subject) or its relationship in a context. Created in the acknowledging actor's repo to form a bidirectional link. Examples: a contributor acknowledging inclusion in an activity, an activity owner acknowledging inclusion in a collection, or a record owner acknowledging an evaluation.",
726
1061
  key: 'tid',
727
1062
  record: {
728
1063
  type: 'object',
729
- required: ['measurers', 'metric', 'value', 'createdAt'],
1064
+ required: ['subject', 'acknowledged', 'createdAt'],
730
1065
  properties: {
731
1066
  subject: {
732
1067
  type: 'ref',
733
1068
  ref: 'lex:com.atproto.repo.strongRef',
734
- description: 'A strong reference to the record this measurement refers to (e.g. an activity, project, or claim).',
1069
+ description: 'The record being acknowledged (e.g. an activity, a contributor information record, an evaluation).',
735
1070
  },
736
- measurers: {
1071
+ context: {
1072
+ type: 'union',
1073
+ refs: [
1074
+ 'lex:org.hypercerts.defs#uri',
1075
+ 'lex:com.atproto.repo.strongRef',
1076
+ ],
1077
+ description: 'Context for the acknowledgement (e.g. the collection that includes an activity, or the activity that includes a contributor). A URI for a lightweight reference or a strong reference for content-hash verification.',
1078
+ },
1079
+ acknowledged: {
1080
+ type: 'boolean',
1081
+ description: 'Whether the relationship is acknowledged (true) or rejected (false).',
1082
+ },
1083
+ comment: {
1084
+ type: 'string',
1085
+ description: 'Optional plain-text comment providing additional context or reasoning.',
1086
+ maxLength: 10000,
1087
+ maxGraphemes: 1000,
1088
+ },
1089
+ createdAt: {
1090
+ type: 'string',
1091
+ format: 'datetime',
1092
+ description: 'Client-declared timestamp when this record was originally created.',
1093
+ },
1094
+ },
1095
+ },
1096
+ },
1097
+ },
1098
+ },
1099
+ OrgHypercertsContextAttachment: {
1100
+ lexicon: 1,
1101
+ id: 'org.hypercerts.context.attachment',
1102
+ defs: {
1103
+ main: {
1104
+ type: 'record',
1105
+ description: 'An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).',
1106
+ key: 'tid',
1107
+ record: {
1108
+ type: 'object',
1109
+ required: ['title', 'createdAt'],
1110
+ properties: {
1111
+ subjects: {
737
1112
  type: 'array',
738
- description: 'DIDs of the entity (or entities) that measured this data',
1113
+ description: 'References to the subject(s) the attachment is connected to—this may be an activity claim, outcome claim, measurement, evaluation, or even another attachment. This is optional as the attachment can exist before the claim is recorded.',
739
1114
  items: {
740
1115
  type: 'ref',
741
- ref: 'lex:app.certified.defs#did',
1116
+ ref: 'lex:com.atproto.repo.strongRef',
742
1117
  },
743
1118
  maxLength: 100,
744
1119
  },
745
- metric: {
1120
+ contentType: {
746
1121
  type: 'string',
747
- description: 'The metric being measured',
748
- maxLength: 500,
1122
+ maxLength: 64,
1123
+ description: 'The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.',
749
1124
  },
750
- value: {
751
- type: 'string',
752
- description: 'The measured value',
753
- maxLength: 500,
1125
+ content: {
1126
+ type: 'array',
1127
+ description: 'The files, documents, or external references included in this attachment record.',
1128
+ items: {
1129
+ type: 'union',
1130
+ refs: [
1131
+ 'lex:org.hypercerts.defs#uri',
1132
+ 'lex:org.hypercerts.defs#smallBlob',
1133
+ ],
1134
+ },
1135
+ maxLength: 100,
754
1136
  },
755
- methodType: {
1137
+ title: {
756
1138
  type: 'string',
757
- description: 'Short identifier for the measurement methodology',
758
- maxLength: 30,
1139
+ maxLength: 256,
1140
+ description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')",
759
1141
  },
760
- methodURI: {
1142
+ shortDescription: {
761
1143
  type: 'string',
762
- format: 'uri',
763
- description: 'URI to methodology documentation, standard protocol, or measurement procedure',
1144
+ description: 'Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.',
1145
+ maxLength: 3000,
1146
+ maxGraphemes: 300,
764
1147
  },
765
- evidenceURI: {
1148
+ shortDescriptionFacets: {
766
1149
  type: 'array',
767
- description: 'URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets)',
1150
+ description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
768
1151
  items: {
769
- type: 'string',
770
- format: 'uri',
1152
+ type: 'ref',
1153
+ ref: 'lex:app.bsky.richtext.facet',
771
1154
  },
772
- maxLength: 50,
1155
+ },
1156
+ description: {
1157
+ type: 'ref',
1158
+ ref: 'lex:pub.leaflet.pages.linearDocument#main',
1159
+ description: 'Rich-text description, represented as a Leaflet linear document.',
773
1160
  },
774
1161
  location: {
775
1162
  type: 'ref',
776
1163
  ref: 'lex:com.atproto.repo.strongRef',
777
- description: 'A strong reference to the location where the measurement was taken. The record referenced must conform with the lexicon app.certified.location',
1164
+ description: "A strong reference to the location where this attachment's subject matter occurred. The record referenced must conform with the lexicon app.certified.location.",
778
1165
  },
779
1166
  createdAt: {
780
1167
  type: 'string',
781
1168
  format: 'datetime',
782
- description: 'Client-declared timestamp when this record was originally created',
1169
+ description: 'Client-declared timestamp when this record was originally created.',
783
1170
  },
784
1171
  },
785
1172
  },
786
1173
  },
787
1174
  },
788
1175
  },
789
- OrgHypercertsClaimRights: {
1176
+ OrgHypercertsContextEvaluation: {
790
1177
  lexicon: 1,
791
- id: 'org.hypercerts.claim.rights',
1178
+ id: 'org.hypercerts.context.evaluation',
792
1179
  defs: {
793
1180
  main: {
794
1181
  type: 'record',
795
- description: 'Describes the rights that a contributor and/or an owner has, such as whether the hypercert can be sold, transferred, and under what conditions.',
1182
+ description: 'An evaluation of a hypercert record (e.g. an activity and its impact).',
796
1183
  key: 'tid',
797
1184
  record: {
798
1185
  type: 'object',
799
- required: [
800
- 'rightsName',
801
- 'rightsType',
802
- 'rightsDescription',
803
- 'createdAt',
804
- ],
1186
+ required: ['evaluators', 'summary', 'createdAt'],
805
1187
  properties: {
806
- rightsName: {
807
- type: 'string',
808
- description: 'Full name of the rights',
1188
+ subject: {
1189
+ type: 'ref',
1190
+ ref: 'lex:com.atproto.repo.strongRef',
1191
+ description: 'A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)',
1192
+ },
1193
+ evaluators: {
1194
+ type: 'array',
1195
+ description: 'DIDs of the evaluators',
1196
+ items: {
1197
+ type: 'ref',
1198
+ ref: 'lex:app.certified.defs#did',
1199
+ },
1200
+ maxLength: 1000,
1201
+ },
1202
+ content: {
1203
+ type: 'array',
1204
+ description: 'Evaluation data (URIs or blobs) containing detailed reports or methodology',
1205
+ items: {
1206
+ type: 'union',
1207
+ refs: [
1208
+ 'lex:org.hypercerts.defs#uri',
1209
+ 'lex:org.hypercerts.defs#smallBlob',
1210
+ ],
1211
+ },
809
1212
  maxLength: 100,
810
1213
  },
811
- rightsType: {
812
- type: 'string',
813
- description: 'Short rights identifier for easier search',
814
- maxLength: 10,
1214
+ measurements: {
1215
+ type: 'array',
1216
+ description: 'Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement',
1217
+ items: {
1218
+ type: 'ref',
1219
+ ref: 'lex:com.atproto.repo.strongRef',
1220
+ },
1221
+ maxLength: 100,
815
1222
  },
816
- rightsDescription: {
1223
+ summary: {
817
1224
  type: 'string',
818
- description: 'Description of the rights of this hypercert',
1225
+ description: 'Brief evaluation summary',
1226
+ maxLength: 5000,
1227
+ maxGraphemes: 1000,
819
1228
  },
820
- attachment: {
821
- type: 'union',
822
- refs: [
823
- 'lex:org.hypercerts.defs#uri',
824
- 'lex:org.hypercerts.defs#smallBlob',
825
- ],
826
- description: 'An attachment to define the rights further, e.g. a legal document.',
1229
+ score: {
1230
+ type: 'ref',
1231
+ ref: 'lex:org.hypercerts.context.evaluation#score',
1232
+ description: 'Optional overall score for this evaluation on a numeric scale.',
1233
+ },
1234
+ location: {
1235
+ type: 'ref',
1236
+ ref: 'lex:com.atproto.repo.strongRef',
1237
+ description: 'An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location.',
827
1238
  },
828
1239
  createdAt: {
829
1240
  type: 'string',
@@ -833,162 +1244,213 @@ const schemaDict = {
833
1244
  },
834
1245
  },
835
1246
  },
836
- },
837
- },
838
- OrgHypercertsDefs: {
839
- lexicon: 1,
840
- id: 'org.hypercerts.defs',
841
- defs: {
842
- uri: {
843
- type: 'object',
844
- required: ['uri'],
845
- description: 'Object containing a URI to external data',
846
- properties: {
847
- uri: {
848
- type: 'string',
849
- format: 'uri',
850
- maxGraphemes: 1024,
851
- description: 'URI to external data',
852
- },
853
- },
854
- },
855
- smallBlob: {
1247
+ score: {
856
1248
  type: 'object',
857
- required: ['blob'],
858
- description: 'Object containing a blob to external data',
1249
+ description: 'Overall score for an evaluation on a numeric scale.',
1250
+ required: ['min', 'max', 'value'],
859
1251
  properties: {
860
- blob: {
861
- type: 'blob',
862
- accept: ['*/*'],
863
- maxSize: 10485760,
864
- description: 'Blob to external data (up to 10MB)',
1252
+ min: {
1253
+ type: 'integer',
1254
+ description: 'Minimum value of the scale, e.g. 0 or 1.',
865
1255
  },
866
- },
867
- },
868
- largeBlob: {
869
- type: 'object',
870
- required: ['blob'],
871
- description: 'Object containing a blob to external data',
872
- properties: {
873
- blob: {
874
- type: 'blob',
875
- accept: ['*/*'],
876
- maxSize: 104857600,
877
- description: 'Blob to external data (up to 100MB)',
1256
+ max: {
1257
+ type: 'integer',
1258
+ description: 'Maximum value of the scale, e.g. 5 or 10.',
878
1259
  },
879
- },
880
- },
881
- smallImage: {
882
- type: 'object',
883
- required: ['image'],
884
- description: 'Object containing a small image',
885
- properties: {
886
- image: {
887
- type: 'blob',
888
- accept: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'],
889
- maxSize: 5242880,
890
- description: 'Image (up to 5MB)',
1260
+ value: {
1261
+ type: 'integer',
1262
+ description: 'Score within the inclusive range [min, max].',
891
1263
  },
892
1264
  },
893
1265
  },
894
- largeImage: {
895
- type: 'object',
896
- required: ['image'],
897
- description: 'Object containing a large image',
898
- properties: {
899
- image: {
900
- type: 'blob',
901
- accept: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'],
902
- maxSize: 10485760,
903
- description: 'Image (up to 10MB)',
904
- },
905
- },
1266
+ },
1267
+ },
1268
+ OrgHypercertsContextMeasurement: {
1269
+ lexicon: 1,
1270
+ id: 'org.hypercerts.context.measurement',
1271
+ defs: {
1272
+ main: {
1273
+ type: 'record',
1274
+ description: 'Measurement data related to one or more records (e.g. activities, projects, etc.).',
1275
+ key: 'tid',
1276
+ record: {
1277
+ type: 'object',
1278
+ required: ['metric', 'unit', 'value', 'createdAt'],
1279
+ properties: {
1280
+ subjects: {
1281
+ type: 'array',
1282
+ description: 'Strong references to the records this measurement refers to (e.g. activities, projects, or claims).',
1283
+ items: {
1284
+ type: 'ref',
1285
+ ref: 'lex:com.atproto.repo.strongRef',
1286
+ },
1287
+ maxLength: 100,
1288
+ },
1289
+ metric: {
1290
+ type: 'string',
1291
+ description: 'The metric being measured, e.g. forest area restored, number of users, etc.',
1292
+ maxLength: 500,
1293
+ },
1294
+ unit: {
1295
+ type: 'string',
1296
+ description: 'The unit of the measured value (e.g. kg CO₂e, hectares, %, index score).',
1297
+ maxLength: 50,
1298
+ },
1299
+ value: {
1300
+ type: 'string',
1301
+ description: "The measured value as a numeric string (e.g. '1234.56')",
1302
+ maxLength: 500,
1303
+ },
1304
+ startDate: {
1305
+ type: 'string',
1306
+ format: 'datetime',
1307
+ description: 'The start date and time when the measurement began.',
1308
+ },
1309
+ endDate: {
1310
+ type: 'string',
1311
+ format: 'datetime',
1312
+ description: 'The end date and time when the measurement ended. For one-time measurements, this should equal the start date.',
1313
+ },
1314
+ locations: {
1315
+ type: 'array',
1316
+ description: 'Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon.',
1317
+ items: {
1318
+ type: 'ref',
1319
+ ref: 'lex:com.atproto.repo.strongRef',
1320
+ },
1321
+ maxLength: 100,
1322
+ },
1323
+ methodType: {
1324
+ type: 'string',
1325
+ description: 'Short identifier for the measurement methodology',
1326
+ maxLength: 30,
1327
+ },
1328
+ methodURI: {
1329
+ type: 'string',
1330
+ format: 'uri',
1331
+ description: 'URI to methodology documentation, standard protocol, or measurement procedure',
1332
+ },
1333
+ evidenceURI: {
1334
+ type: 'array',
1335
+ description: 'URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets)',
1336
+ items: {
1337
+ type: 'string',
1338
+ format: 'uri',
1339
+ },
1340
+ maxLength: 50,
1341
+ },
1342
+ measurers: {
1343
+ type: 'array',
1344
+ description: 'DIDs of the entities that performed this measurement',
1345
+ items: {
1346
+ type: 'ref',
1347
+ ref: 'lex:app.certified.defs#did',
1348
+ },
1349
+ maxLength: 100,
1350
+ },
1351
+ comment: {
1352
+ type: 'string',
1353
+ description: 'Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`.',
1354
+ maxLength: 3000,
1355
+ maxGraphemes: 300,
1356
+ },
1357
+ commentFacets: {
1358
+ type: 'array',
1359
+ description: 'Rich text annotations for `comment` (mentions, URLs, hashtags, etc).',
1360
+ items: {
1361
+ type: 'ref',
1362
+ ref: 'lex:app.bsky.richtext.facet',
1363
+ },
1364
+ },
1365
+ createdAt: {
1366
+ type: 'string',
1367
+ format: 'datetime',
1368
+ description: 'Client-declared timestamp when this record was originally created',
1369
+ },
1370
+ },
1371
+ },
906
1372
  },
907
- workScopeAll: {
1373
+ },
1374
+ },
1375
+ OrgHypercertsDefs: {
1376
+ lexicon: 1,
1377
+ id: 'org.hypercerts.defs',
1378
+ description: 'Common type definitions used across all Hypercerts protocols.',
1379
+ defs: {
1380
+ uri: {
908
1381
  type: 'object',
909
- required: ['op', 'args'],
910
- description: 'Logical AND operation: all arguments must be satisfied.',
1382
+ required: ['uri'],
1383
+ description: 'Object containing a URI to external data',
911
1384
  properties: {
912
- op: {
1385
+ uri: {
913
1386
  type: 'string',
914
- const: 'all',
915
- description: "Operator type: 'all' (logical AND)",
916
- },
917
- args: {
918
- type: 'array',
919
- items: {
920
- type: 'union',
921
- refs: [
922
- 'lex:org.hypercerts.defs#workScopeAll',
923
- 'lex:org.hypercerts.defs#workScopeAny',
924
- 'lex:org.hypercerts.defs#workScopeNot',
925
- 'lex:org.hypercerts.defs#workScopeAtom',
926
- ],
927
- },
928
- minLength: 1,
929
- maxLength: 100,
930
- description: 'Array of work scope expressions that must all be satisfied',
1387
+ format: 'uri',
1388
+ description: 'URI to external data',
931
1389
  },
932
1390
  },
933
1391
  },
934
- workScopeAny: {
1392
+ smallBlob: {
935
1393
  type: 'object',
936
- required: ['op', 'args'],
937
- description: 'Logical OR operation: at least one argument must be satisfied.',
1394
+ required: ['blob'],
1395
+ description: 'Object containing a blob to external data',
938
1396
  properties: {
939
- op: {
940
- type: 'string',
941
- const: 'any',
942
- description: "Operator type: 'any' (logical OR)",
1397
+ blob: {
1398
+ type: 'blob',
1399
+ accept: ['*/*'],
1400
+ maxSize: 10485760,
1401
+ description: 'Blob to external data (up to 10MB)',
943
1402
  },
944
- args: {
945
- type: 'array',
946
- items: {
947
- type: 'union',
948
- refs: [
949
- 'lex:org.hypercerts.defs#workScopeAll',
950
- 'lex:org.hypercerts.defs#workScopeAny',
951
- 'lex:org.hypercerts.defs#workScopeNot',
952
- 'lex:org.hypercerts.defs#workScopeAtom',
953
- ],
954
- },
955
- minLength: 1,
956
- maxLength: 100,
957
- description: 'Array of work scope expressions, at least one of which must be satisfied',
1403
+ },
1404
+ },
1405
+ largeBlob: {
1406
+ type: 'object',
1407
+ required: ['blob'],
1408
+ description: 'Object containing a blob to external data',
1409
+ properties: {
1410
+ blob: {
1411
+ type: 'blob',
1412
+ accept: ['*/*'],
1413
+ maxSize: 104857600,
1414
+ description: 'Blob to external data (up to 100MB)',
958
1415
  },
959
1416
  },
960
1417
  },
961
- workScopeNot: {
1418
+ smallImage: {
962
1419
  type: 'object',
963
- required: ['op', 'arg'],
964
- description: 'Logical NOT operation: the argument must not be satisfied.',
1420
+ required: ['image'],
1421
+ description: 'Object containing a small image',
965
1422
  properties: {
966
- op: {
967
- type: 'string',
968
- const: 'not',
969
- description: "Operator type: 'not' (logical NOT)",
1423
+ image: {
1424
+ type: 'blob',
1425
+ accept: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'],
1426
+ maxSize: 5242880,
1427
+ description: 'Image (up to 5MB)',
970
1428
  },
971
- arg: {
972
- type: 'union',
973
- refs: [
974
- 'lex:org.hypercerts.defs#workScopeAll',
975
- 'lex:org.hypercerts.defs#workScopeAny',
976
- 'lex:org.hypercerts.defs#workScopeNot',
977
- 'lex:org.hypercerts.defs#workScopeAtom',
978
- ],
979
- description: 'Work scope expression that must not be satisfied',
1429
+ },
1430
+ },
1431
+ smallVideo: {
1432
+ type: 'object',
1433
+ required: ['video'],
1434
+ description: 'Object containing a small video',
1435
+ properties: {
1436
+ video: {
1437
+ type: 'blob',
1438
+ accept: ['video/mp4', 'video/webm'],
1439
+ maxSize: 20971520,
1440
+ description: 'Video (up to 20MB)',
980
1441
  },
981
1442
  },
982
1443
  },
983
- workScopeAtom: {
1444
+ largeImage: {
984
1445
  type: 'object',
985
- required: ['atom'],
986
- description: 'Atomic scope reference: a strong reference to a scope record.',
1446
+ required: ['image'],
1447
+ description: 'Object containing a large image',
987
1448
  properties: {
988
- atom: {
989
- type: 'ref',
990
- ref: 'lex:com.atproto.repo.strongRef',
991
- description: 'Strong reference to an org.hypercerts.helper.workScopeTag record',
1449
+ image: {
1450
+ type: 'blob',
1451
+ accept: ['image/jpeg', 'image/jpg', 'image/png', 'image/webp'],
1452
+ maxSize: 10485760,
1453
+ description: 'Image (up to 10MB)',
992
1454
  },
993
1455
  },
994
1456
  },
@@ -1014,26 +1476,32 @@ const schemaDict = {
1014
1476
  to: {
1015
1477
  type: 'string',
1016
1478
  description: 'The recipient of the funds. Can be identified by DID or a clear-text name.',
1479
+ maxLength: 2048,
1017
1480
  },
1018
1481
  amount: {
1019
1482
  type: 'string',
1020
- description: 'Amount of funding received.',
1483
+ description: "Amount of funding received as a numeric string (e.g. '1000.50').",
1484
+ maxLength: 50,
1021
1485
  },
1022
1486
  currency: {
1023
1487
  type: 'string',
1024
1488
  description: 'Currency of the payment (e.g. EUR, USD, ETH).',
1489
+ maxLength: 10,
1025
1490
  },
1026
1491
  paymentRail: {
1027
1492
  type: 'string',
1028
1493
  description: 'How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).',
1494
+ maxLength: 50,
1029
1495
  },
1030
1496
  paymentNetwork: {
1031
1497
  type: 'string',
1032
1498
  description: 'Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).',
1499
+ maxLength: 50,
1033
1500
  },
1034
1501
  transactionId: {
1035
1502
  type: 'string',
1036
1503
  description: 'Identifier of the underlying payment transaction (e.g. bank reference, onchain transaction hash, or processor-specific ID). Use paymentNetwork to specify the network where applicable.',
1504
+ maxLength: 256,
1037
1505
  },
1038
1506
  for: {
1039
1507
  type: 'string',
@@ -1060,36 +1528,71 @@ const schemaDict = {
1060
1528
  },
1061
1529
  },
1062
1530
  },
1063
- OrgHypercertsHelperWorkScopeTag: {
1531
+ OrgHypercertsWorkscopeCel: {
1532
+ lexicon: 1,
1533
+ id: 'org.hypercerts.workscope.cel',
1534
+ defs: {
1535
+ main: {
1536
+ type: 'object',
1537
+ description: "A structured, machine-evaluable work scope definition using CEL (Common Expression Language). Tags referenced in the expression correspond to org.hypercerts.workscope.tag keys. See https://github.com/google/cel-spec. Note: this is intentionally type 'object' (not 'record') so it can be directly embedded inline in union types (e.g., activity.workScope) without requiring a separate collection or strongRef indirection.",
1538
+ required: ['expression', 'usedTags', 'version', 'createdAt'],
1539
+ properties: {
1540
+ expression: {
1541
+ type: 'string',
1542
+ maxLength: 10000,
1543
+ maxGraphemes: 5000,
1544
+ description: "A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE'",
1545
+ },
1546
+ usedTags: {
1547
+ type: 'array',
1548
+ items: {
1549
+ type: 'ref',
1550
+ ref: 'lex:com.atproto.repo.strongRef',
1551
+ },
1552
+ maxLength: 100,
1553
+ description: 'Strong references to org.hypercerts.workscope.tag records used in the expression. Enables fast indexing by AT-URI and provides referential integrity to the underlying tag records.',
1554
+ },
1555
+ version: {
1556
+ type: 'string',
1557
+ maxLength: 16,
1558
+ knownValues: ['v1'],
1559
+ description: 'CEL context schema version.',
1560
+ },
1561
+ createdAt: {
1562
+ type: 'string',
1563
+ format: 'datetime',
1564
+ description: 'Client-declared timestamp when this expression was originally created.',
1565
+ },
1566
+ },
1567
+ },
1568
+ },
1569
+ },
1570
+ OrgHypercertsWorkscopeTag: {
1064
1571
  lexicon: 1,
1065
- id: 'org.hypercerts.helper.workScopeTag',
1572
+ id: 'org.hypercerts.workscope.tag',
1066
1573
  defs: {
1067
1574
  main: {
1068
1575
  type: 'record',
1069
- description: 'A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels.',
1576
+ description: 'A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels. Tags are composed into structured expressions via CEL (Common Expression Language) on activity records.',
1070
1577
  key: 'tid',
1071
1578
  record: {
1072
1579
  type: 'object',
1073
- required: ['createdAt', 'key', 'label'],
1580
+ required: ['key', 'name', 'createdAt'],
1074
1581
  properties: {
1075
- createdAt: {
1076
- type: 'string',
1077
- format: 'datetime',
1078
- description: 'Client-declared timestamp when this record was originally created',
1079
- },
1080
1582
  key: {
1081
1583
  type: 'string',
1082
- description: "Lowercase, hyphenated machine-readable key for this scope (e.g., 'ipfs', 'go-lang', 'filecoin').",
1584
+ description: "Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions.",
1083
1585
  maxLength: 120,
1084
1586
  },
1085
- label: {
1587
+ name: {
1086
1588
  type: 'string',
1087
- description: 'Human-readable label for this scope.',
1589
+ description: 'Human-readable name for this scope.',
1088
1590
  maxLength: 200,
1089
1591
  },
1090
- kind: {
1592
+ category: {
1091
1593
  type: 'string',
1092
- description: 'Category type of this scope. Recommended values: topic, language, domain, method, tag.',
1594
+ description: 'Category type of this scope.',
1595
+ knownValues: ['topic', 'language', 'domain', 'method'],
1093
1596
  maxLength: 50,
1094
1597
  },
1095
1598
  description: {
@@ -1101,7 +1604,18 @@ const schemaDict = {
1101
1604
  parent: {
1102
1605
  type: 'ref',
1103
1606
  ref: 'lex:com.atproto.repo.strongRef',
1104
- description: 'Optional strong reference to a parent scope record for taxonomy/hierarchy support.',
1607
+ description: 'Optional strong reference to a parent work scope tag record for taxonomy/hierarchy support. The record referenced must conform with the lexicon org.hypercerts.workscope.tag.',
1608
+ },
1609
+ status: {
1610
+ type: 'string',
1611
+ description: 'Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy.',
1612
+ knownValues: ['proposed', 'accepted', 'deprecated'],
1613
+ maxLength: 20,
1614
+ },
1615
+ supersededBy: {
1616
+ type: 'ref',
1617
+ ref: 'lex:com.atproto.repo.strongRef',
1618
+ description: "When status is 'deprecated', points to the replacement work scope tag record. The record referenced must conform with the lexicon org.hypercerts.workscope.tag.",
1105
1619
  },
1106
1620
  aliases: {
1107
1621
  type: 'array',
@@ -1110,15 +1624,30 @@ const schemaDict = {
1110
1624
  maxLength: 200,
1111
1625
  },
1112
1626
  maxLength: 50,
1113
- description: 'Optional array of alternative names or identifiers for this scope.',
1627
+ description: 'Alternative human-readable names for this scope (e.g., translations, abbreviations, or common synonyms). Unlike sameAs, these are plain-text labels, not links to external ontologies.',
1628
+ },
1629
+ sameAs: {
1630
+ type: 'array',
1631
+ items: {
1632
+ type: 'string',
1633
+ format: 'uri',
1634
+ maxLength: 2048,
1635
+ },
1636
+ maxLength: 20,
1637
+ description: 'URIs to semantically equivalent concepts in external ontologies or taxonomies (e.g., Wikidata QIDs, ENVO terms, SDG targets). Used for interoperability, not as documentation.',
1114
1638
  },
1115
- externalReference: {
1639
+ referenceDocument: {
1116
1640
  type: 'union',
1117
1641
  refs: [
1118
1642
  'lex:org.hypercerts.defs#uri',
1119
1643
  'lex:org.hypercerts.defs#smallBlob',
1120
1644
  ],
1121
- description: 'Optional external reference for this scope as a URI or blob.',
1645
+ description: 'Link to a governance or reference document where this work scope tag is defined and further explained.',
1646
+ },
1647
+ createdAt: {
1648
+ type: 'string',
1649
+ format: 'datetime',
1650
+ description: 'Client-declared timestamp when this record was originally created.',
1122
1651
  },
1123
1652
  },
1124
1653
  },
@@ -1128,8 +1657,8 @@ const schemaDict = {
1128
1657
  };
1129
1658
  const schemas = Object.values(schemaDict);
1130
1659
  const lexicons = new Lexicons(schemas);
1131
- function validate$g(v, id, hash, requiredType) {
1132
- return (requiredType ? is$typed$g : maybe$typed)(v, id, hash)
1660
+ function validate$n(v, id, hash, requiredType) {
1661
+ return (requiredType ? is$typed$n : maybe$typed)(v, id, hash)
1133
1662
  ? lexicons.validate(`${id}#${hash}`, v)
1134
1663
  : {
1135
1664
  success: false,
@@ -1137,75 +1666,233 @@ function validate$g(v, id, hash, requiredType) {
1137
1666
  };
1138
1667
  }
1139
1668
  const ids = {
1669
+ AppCertifiedActorOrganization: 'app.certified.actor.organization',
1670
+ AppCertifiedActorProfile: 'app.certified.actor.profile',
1140
1671
  AppCertifiedBadgeAward: 'app.certified.badge.award',
1141
1672
  AppCertifiedBadgeDefinition: 'app.certified.badge.definition',
1142
1673
  AppCertifiedBadgeResponse: 'app.certified.badge.response',
1143
1674
  AppCertifiedDefs: 'app.certified.defs',
1144
1675
  AppCertifiedLocation: 'app.certified.location',
1145
1676
  ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',
1677
+ OrgHyperboardsBoard: 'org.hyperboards.board',
1678
+ OrgHyperboardsDisplayProfile: 'org.hyperboards.displayProfile',
1146
1679
  OrgHypercertsClaimActivity: 'org.hypercerts.claim.activity',
1147
- OrgHypercertsClaimCollection: 'org.hypercerts.claim.collection',
1148
- OrgHypercertsClaimContributionDetails: 'org.hypercerts.claim.contributionDetails',
1680
+ OrgHypercertsClaimContribution: 'org.hypercerts.claim.contribution',
1149
1681
  OrgHypercertsClaimContributorInformation: 'org.hypercerts.claim.contributorInformation',
1150
- OrgHypercertsClaimEvaluation: 'org.hypercerts.claim.evaluation',
1151
- OrgHypercertsClaimEvidence: 'org.hypercerts.claim.evidence',
1152
- OrgHypercertsClaimMeasurement: 'org.hypercerts.claim.measurement',
1153
1682
  OrgHypercertsClaimRights: 'org.hypercerts.claim.rights',
1683
+ OrgHypercertsCollection: 'org.hypercerts.collection',
1684
+ OrgHypercertsContextAcknowledgement: 'org.hypercerts.context.acknowledgement',
1685
+ OrgHypercertsContextAttachment: 'org.hypercerts.context.attachment',
1686
+ OrgHypercertsContextEvaluation: 'org.hypercerts.context.evaluation',
1687
+ OrgHypercertsContextMeasurement: 'org.hypercerts.context.measurement',
1154
1688
  OrgHypercertsDefs: 'org.hypercerts.defs',
1155
1689
  OrgHypercertsFundingReceipt: 'org.hypercerts.funding.receipt',
1156
- OrgHypercertsHelperWorkScopeTag: 'org.hypercerts.helper.workScopeTag',
1690
+ OrgHypercertsWorkscopeCel: 'org.hypercerts.workscope.cel',
1691
+ OrgHypercertsWorkscopeTag: 'org.hypercerts.workscope.tag',
1157
1692
  };
1158
1693
 
1159
- var lexicon$g = 1;
1160
- var id$w = "app.certified.badge.award";
1161
- var defs$i = {
1694
+ var lexicon$m = 1;
1695
+ var id$J = "app.certified.actor.organization";
1696
+ var defs$o = {
1162
1697
  main: {
1163
1698
  type: "record",
1164
- description: "Records a badge award to a user, project, or activity claim.",
1165
- key: "tid",
1699
+ description: "Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.",
1700
+ key: "literal:self",
1166
1701
  record: {
1167
1702
  type: "object",
1168
1703
  required: [
1169
- "badge",
1170
- "subject",
1171
1704
  "createdAt"
1172
1705
  ],
1173
1706
  properties: {
1174
- badge: {
1175
- type: "ref",
1176
- ref: "app.certified.badge.definition",
1177
- description: "Reference to the badge definition for this award."
1707
+ organizationType: {
1708
+ type: "array",
1709
+ description: "Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative').",
1710
+ items: {
1711
+ type: "string",
1712
+ maxLength: 128,
1713
+ maxGraphemes: 100
1714
+ },
1715
+ maxLength: 10
1178
1716
  },
1179
- subject: {
1180
- type: "union",
1181
- description: "Entity the badge award is for (either an account DID or any specific AT Protocol record), e.g. a user, a project, or a specific activity claim.",
1182
- refs: [
1183
- "app.certified.defs#did",
1184
- "com.atproto.repo.strongRef"
1185
- ]
1717
+ urls: {
1718
+ type: "array",
1719
+ description: "Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL.",
1720
+ items: {
1721
+ type: "ref",
1722
+ ref: "#urlItem"
1723
+ }
1186
1724
  },
1187
- note: {
1725
+ location: {
1726
+ type: "ref",
1727
+ ref: "com.atproto.repo.strongRef",
1728
+ description: "A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location."
1729
+ },
1730
+ foundedDate: {
1188
1731
  type: "string",
1189
- description: "Optional statement explaining the reason for this badge award."
1732
+ format: "datetime",
1733
+ description: "When the organization was established. Stored as datetime per ATProto conventions (no date-only format exists). Clients should use midnight UTC (e.g., '2005-01-01T00:00:00.000Z'); consumers should treat only the date portion as canonical."
1190
1734
  },
1191
1735
  createdAt: {
1192
1736
  type: "string",
1193
1737
  format: "datetime",
1194
- description: "Client-declared timestamp when this record was originally created"
1738
+ description: "Client-declared timestamp when this record was originally created."
1195
1739
  }
1196
1740
  }
1197
1741
  }
1198
- }
1199
- };
1200
- var BADGE_AWARD_LEXICON_JSON = {
1201
- lexicon: lexicon$g,
1202
- id: id$w,
1203
- defs: defs$i
1204
- };
1205
-
1206
- var lexicon$f = 1;
1207
- var id$v = "app.certified.badge.definition";
1208
- var defs$h = {
1742
+ },
1743
+ urlItem: {
1744
+ type: "object",
1745
+ description: "A labeled URL reference.",
1746
+ required: [
1747
+ "url"
1748
+ ],
1749
+ properties: {
1750
+ url: {
1751
+ type: "string",
1752
+ format: "uri",
1753
+ description: "The URL.",
1754
+ maxLength: 10000,
1755
+ maxGraphemes: 2048
1756
+ },
1757
+ label: {
1758
+ type: "string",
1759
+ description: "Optional human-readable label for this URL (e.g. 'Support page', 'Donation page').",
1760
+ maxLength: 640,
1761
+ maxGraphemes: 64
1762
+ }
1763
+ }
1764
+ }
1765
+ };
1766
+ var ACTOR_ORGANIZATION_LEXICON_JSON = {
1767
+ lexicon: lexicon$m,
1768
+ id: id$J,
1769
+ defs: defs$o
1770
+ };
1771
+
1772
+ var lexicon$l = 1;
1773
+ var id$I = "app.certified.actor.profile";
1774
+ var defs$n = {
1775
+ main: {
1776
+ type: "record",
1777
+ description: "A declaration of a Certified account profile.",
1778
+ key: "literal:self",
1779
+ record: {
1780
+ type: "object",
1781
+ required: [
1782
+ "createdAt"
1783
+ ],
1784
+ properties: {
1785
+ displayName: {
1786
+ type: "string",
1787
+ description: "Display name for the account",
1788
+ maxGraphemes: 64,
1789
+ maxLength: 640
1790
+ },
1791
+ description: {
1792
+ type: "string",
1793
+ description: "Free-form profile description text.",
1794
+ maxGraphemes: 256,
1795
+ maxLength: 2560
1796
+ },
1797
+ pronouns: {
1798
+ type: "string",
1799
+ description: "Free-form pronouns text.",
1800
+ maxGraphemes: 20,
1801
+ maxLength: 200
1802
+ },
1803
+ website: {
1804
+ type: "string",
1805
+ format: "uri",
1806
+ description: "Account website URL"
1807
+ },
1808
+ avatar: {
1809
+ type: "union",
1810
+ refs: [
1811
+ "org.hypercerts.defs#uri",
1812
+ "org.hypercerts.defs#smallImage"
1813
+ ],
1814
+ description: "Small image to be displayed next to posts from account. AKA, 'profile picture'"
1815
+ },
1816
+ banner: {
1817
+ type: "union",
1818
+ refs: [
1819
+ "org.hypercerts.defs#uri",
1820
+ "org.hypercerts.defs#largeImage"
1821
+ ],
1822
+ description: "Larger horizontal image to display behind profile view."
1823
+ },
1824
+ createdAt: {
1825
+ type: "string",
1826
+ format: "datetime",
1827
+ description: "Client-declared timestamp when this record was originally created"
1828
+ }
1829
+ }
1830
+ }
1831
+ }
1832
+ };
1833
+ var ACTOR_PROFILE_LEXICON_JSON = {
1834
+ lexicon: lexicon$l,
1835
+ id: id$I,
1836
+ defs: defs$n
1837
+ };
1838
+
1839
+ var lexicon$k = 1;
1840
+ var id$H = "app.certified.badge.award";
1841
+ var defs$m = {
1842
+ main: {
1843
+ type: "record",
1844
+ description: "Records a badge award to a user, project, or activity claim.",
1845
+ key: "tid",
1846
+ record: {
1847
+ type: "object",
1848
+ required: [
1849
+ "badge",
1850
+ "subject",
1851
+ "createdAt"
1852
+ ],
1853
+ properties: {
1854
+ badge: {
1855
+ type: "ref",
1856
+ ref: "app.certified.badge.definition",
1857
+ description: "Reference to the badge definition for this award."
1858
+ },
1859
+ subject: {
1860
+ type: "union",
1861
+ description: "Entity the badge award is for (either an account DID or any specific AT Protocol record), e.g. a user, a project, or a specific activity claim.",
1862
+ refs: [
1863
+ "app.certified.defs#did",
1864
+ "com.atproto.repo.strongRef"
1865
+ ]
1866
+ },
1867
+ note: {
1868
+ type: "string",
1869
+ description: "Optional statement explaining the reason for this badge award.",
1870
+ maxLength: 500
1871
+ },
1872
+ url: {
1873
+ type: "string",
1874
+ format: "uri",
1875
+ description: "Optional URL the badge award links to.",
1876
+ maxLength: 2048
1877
+ },
1878
+ createdAt: {
1879
+ type: "string",
1880
+ format: "datetime",
1881
+ description: "Client-declared timestamp when this record was originally created"
1882
+ }
1883
+ }
1884
+ }
1885
+ }
1886
+ };
1887
+ var BADGE_AWARD_LEXICON_JSON = {
1888
+ lexicon: lexicon$k,
1889
+ id: id$H,
1890
+ defs: defs$m
1891
+ };
1892
+
1893
+ var lexicon$j = 1;
1894
+ var id$G = "app.certified.badge.definition";
1895
+ var defs$l = {
1209
1896
  main: {
1210
1897
  type: "record",
1211
1898
  description: "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.",
@@ -1221,11 +1908,13 @@ var defs$h = {
1221
1908
  properties: {
1222
1909
  badgeType: {
1223
1910
  type: "string",
1224
- description: "Category of the badge (e.g. endorsement, participation, affiliation)."
1911
+ description: "Category of the badge (e.g. endorsement, participation, affiliation).",
1912
+ maxLength: 100
1225
1913
  },
1226
1914
  title: {
1227
1915
  type: "string",
1228
- description: "Human-readable title of the badge."
1916
+ description: "Human-readable title of the badge.",
1917
+ maxLength: 256
1229
1918
  },
1230
1919
  icon: {
1231
1920
  type: "blob",
@@ -1240,11 +1929,14 @@ var defs$h = {
1240
1929
  },
1241
1930
  description: {
1242
1931
  type: "string",
1243
- description: "Optional short statement describing what the badge represents."
1932
+ description: "Optional short statement describing what the badge represents.",
1933
+ maxLength: 5000,
1934
+ maxGraphemes: 500
1244
1935
  },
1245
1936
  allowedIssuers: {
1246
1937
  type: "array",
1247
1938
  description: "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.",
1939
+ maxLength: 100,
1248
1940
  items: {
1249
1941
  type: "ref",
1250
1942
  ref: "app.certified.defs#did"
@@ -1260,14 +1952,14 @@ var defs$h = {
1260
1952
  }
1261
1953
  };
1262
1954
  var BADGE_DEFINITION_LEXICON_JSON = {
1263
- lexicon: lexicon$f,
1264
- id: id$v,
1265
- defs: defs$h
1955
+ lexicon: lexicon$j,
1956
+ id: id$G,
1957
+ defs: defs$l
1266
1958
  };
1267
1959
 
1268
- var lexicon$e = 1;
1269
- var id$u = "app.certified.badge.response";
1270
- var defs$g = {
1960
+ var lexicon$i = 1;
1961
+ var id$F = "app.certified.badge.response";
1962
+ var defs$k = {
1271
1963
  main: {
1272
1964
  type: "record",
1273
1965
  description: "Recipient response to a badge award.",
@@ -1287,7 +1979,7 @@ var defs$g = {
1287
1979
  },
1288
1980
  response: {
1289
1981
  type: "string",
1290
- "enum": [
1982
+ knownValues: [
1291
1983
  "accepted",
1292
1984
  "rejected"
1293
1985
  ],
@@ -1295,7 +1987,8 @@ var defs$g = {
1295
1987
  },
1296
1988
  weight: {
1297
1989
  type: "string",
1298
- description: "Optional relative weight for accepted badges, assigned by the recipient."
1990
+ description: "Optional relative weight for accepted badges, assigned by the recipient.",
1991
+ maxLength: 50
1299
1992
  },
1300
1993
  createdAt: {
1301
1994
  type: "string",
@@ -1307,31 +2000,41 @@ var defs$g = {
1307
2000
  }
1308
2001
  };
1309
2002
  var BADGE_RESPONSE_LEXICON_JSON = {
1310
- lexicon: lexicon$e,
1311
- id: id$u,
1312
- defs: defs$g
2003
+ lexicon: lexicon$i,
2004
+ id: id$F,
2005
+ defs: defs$k
1313
2006
  };
1314
2007
 
1315
- var lexicon$d = 1;
1316
- var id$t = "app.certified.defs";
1317
- var description$1 = "Common type definitions used across certified protocols.";
1318
- var defs$f = {
2008
+ var lexicon$h = 1;
2009
+ var id$E = "app.certified.defs";
2010
+ var description$2 = "Common type definitions used across certified protocols.";
2011
+ var defs$j = {
1319
2012
  did: {
1320
- type: "string",
1321
- format: "did",
1322
- description: "A Decentralized Identifier (DID) string."
2013
+ type: "object",
2014
+ description: "A Decentralized Identifier (DID) string.",
2015
+ required: [
2016
+ "did"
2017
+ ],
2018
+ properties: {
2019
+ did: {
2020
+ type: "string",
2021
+ format: "did",
2022
+ description: "The DID string value.",
2023
+ maxLength: 256
2024
+ }
2025
+ }
1323
2026
  }
1324
2027
  };
1325
2028
  var CERTIFIED_DEFS_LEXICON_JSON = {
1326
- lexicon: lexicon$d,
1327
- id: id$t,
1328
- description: description$1,
1329
- defs: defs$f
2029
+ lexicon: lexicon$h,
2030
+ id: id$E,
2031
+ description: description$2,
2032
+ defs: defs$j
1330
2033
  };
1331
2034
 
1332
- var lexicon$c = 1;
1333
- var id$s = "app.certified.location";
1334
- var defs$e = {
2035
+ var lexicon$g = 1;
2036
+ var id$D = "app.certified.location";
2037
+ var defs$i = {
1335
2038
  main: {
1336
2039
  type: "record",
1337
2040
  description: "A location reference",
@@ -1359,10 +2062,16 @@ var defs$e = {
1359
2062
  },
1360
2063
  locationType: {
1361
2064
  type: "string",
1362
- description: "An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)",
2065
+ description: "An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point). See the Location Protocol spec for the full registry: https://spec.decentralizedgeo.org/specification/location-types/#location-type-registry",
1363
2066
  knownValues: [
1364
2067
  "coordinate-decimal",
1365
- "geojson-point"
2068
+ "geojson-point",
2069
+ "geojson",
2070
+ "h3",
2071
+ "geohash",
2072
+ "wkt",
2073
+ "address",
2074
+ "scaledCoordinates"
1366
2075
  ],
1367
2076
  maxLength: 20
1368
2077
  },
@@ -1370,19 +2079,20 @@ var defs$e = {
1370
2079
  type: "union",
1371
2080
  refs: [
1372
2081
  "org.hypercerts.defs#uri",
1373
- "org.hypercerts.defs#smallBlob"
2082
+ "org.hypercerts.defs#smallBlob",
2083
+ "#string"
1374
2084
  ],
1375
- description: "The location of where the work was performed as a URI or blob."
2085
+ description: "The location of where the work was performed as a URI, blob, or inline string."
1376
2086
  },
1377
2087
  name: {
1378
2088
  type: "string",
1379
- description: "Optional name for this location",
2089
+ description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
1380
2090
  maxLength: 1000,
1381
2091
  maxGraphemes: 100
1382
2092
  },
1383
2093
  description: {
1384
2094
  type: "string",
1385
- description: "Optional description for this location",
2095
+ description: "Additional context about this location, such as its significance to the work or specific boundaries",
1386
2096
  maxLength: 2000,
1387
2097
  maxGraphemes: 500
1388
2098
  },
@@ -1393,18 +2103,33 @@ var defs$e = {
1393
2103
  }
1394
2104
  }
1395
2105
  }
2106
+ },
2107
+ string: {
2108
+ type: "object",
2109
+ required: [
2110
+ "string"
2111
+ ],
2112
+ description: "A location represented as a string, e.g. coordinates or a small GeoJSON string.",
2113
+ properties: {
2114
+ string: {
2115
+ type: "string",
2116
+ description: "The location string value",
2117
+ maxLength: 10000,
2118
+ maxGraphemes: 1000
2119
+ }
2120
+ }
1396
2121
  }
1397
2122
  };
1398
2123
  var LOCATION_LEXICON_JSON = {
1399
- lexicon: lexicon$c,
1400
- id: id$s,
1401
- defs: defs$e
2124
+ lexicon: lexicon$g,
2125
+ id: id$D,
2126
+ defs: defs$i
1402
2127
  };
1403
2128
 
1404
- var lexicon$b = 1;
1405
- var id$r = "com.atproto.repo.strongRef";
1406
- var description = "A URI with a content-hash fingerprint.";
1407
- var defs$d = {
2129
+ var lexicon$f = 1;
2130
+ var id$C = "com.atproto.repo.strongRef";
2131
+ var description$1 = "A URI with a content-hash fingerprint.";
2132
+ var defs$h = {
1408
2133
  main: {
1409
2134
  type: "object",
1410
2135
  required: [
@@ -1423,60 +2148,514 @@ var defs$d = {
1423
2148
  }
1424
2149
  }
1425
2150
  };
1426
- var STRONG_REF_LEXICON_JSON = {
2151
+ var STRONG_REF_LEXICON_JSON = {
2152
+ lexicon: lexicon$f,
2153
+ id: id$C,
2154
+ description: description$1,
2155
+ defs: defs$h
2156
+ };
2157
+
2158
+ var lexicon$e = 1;
2159
+ var id$B = "org.hyperboards.board";
2160
+ var defs$g = {
2161
+ main: {
2162
+ type: "record",
2163
+ description: "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.",
2164
+ key: "tid",
2165
+ record: {
2166
+ type: "object",
2167
+ required: [
2168
+ "subject",
2169
+ "createdAt"
2170
+ ],
2171
+ properties: {
2172
+ subject: {
2173
+ type: "ref",
2174
+ ref: "com.atproto.repo.strongRef",
2175
+ description: "Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes."
2176
+ },
2177
+ config: {
2178
+ type: "ref",
2179
+ ref: "#boardConfig",
2180
+ description: "Board-level visual configuration (background, colors, aspect ratio)."
2181
+ },
2182
+ contributorConfigs: {
2183
+ type: "array",
2184
+ description: "Per-contributor configuration entries for this board.",
2185
+ maxLength: 1000,
2186
+ items: {
2187
+ type: "ref",
2188
+ ref: "#contributorConfig"
2189
+ }
2190
+ },
2191
+ createdAt: {
2192
+ type: "string",
2193
+ format: "datetime",
2194
+ description: "Client-declared timestamp when this record was originally created."
2195
+ }
2196
+ }
2197
+ }
2198
+ },
2199
+ boardConfig: {
2200
+ type: "object",
2201
+ description: "Visual configuration for a hyperboard's background, colors, and layout.",
2202
+ properties: {
2203
+ backgroundType: {
2204
+ type: "string",
2205
+ description: "Type of background content.",
2206
+ knownValues: [
2207
+ "image",
2208
+ "iframe"
2209
+ ],
2210
+ maxLength: 10
2211
+ },
2212
+ backgroundImage: {
2213
+ type: "union",
2214
+ refs: [
2215
+ "org.hypercerts.defs#uri",
2216
+ "org.hypercerts.defs#smallImage"
2217
+ ],
2218
+ description: "Background image as a URI or image blob."
2219
+ },
2220
+ backgroundIframeUrl: {
2221
+ type: "string",
2222
+ format: "uri",
2223
+ description: "URI of the background iframe.",
2224
+ maxLength: 2048
2225
+ },
2226
+ backgroundGrayscale: {
2227
+ type: "boolean",
2228
+ description: "Whether the background is rendered in grayscale. Default: true."
2229
+ },
2230
+ backgroundOpacity: {
2231
+ type: "integer",
2232
+ description: "Background opacity as a percentage (0–100).",
2233
+ minimum: 0,
2234
+ maximum: 100
2235
+ },
2236
+ backgroundColor: {
2237
+ type: "string",
2238
+ description: "Background color as a hex string (e.g. '#ffffff').",
2239
+ maxLength: 20
2240
+ },
2241
+ borderColor: {
2242
+ type: "string",
2243
+ description: "Border color as a hex string (e.g. '#000000').",
2244
+ maxLength: 20
2245
+ },
2246
+ grayscaleImages: {
2247
+ type: "boolean",
2248
+ description: "Whether contributor images are rendered in grayscale. Default: false."
2249
+ },
2250
+ imageShape: {
2251
+ type: "string",
2252
+ description: "Shape used to crop contributor images on this board.",
2253
+ knownValues: [
2254
+ "circular",
2255
+ "square"
2256
+ ],
2257
+ maxLength: 20
2258
+ },
2259
+ aspectRatio: {
2260
+ type: "string",
2261
+ description: "Display aspect ratio of the board.",
2262
+ knownValues: [
2263
+ "16:9",
2264
+ "4:3",
2265
+ "1:1"
2266
+ ],
2267
+ maxLength: 10
2268
+ }
2269
+ }
2270
+ },
2271
+ contributorConfig: {
2272
+ type: "object",
2273
+ description: "Configuration for a specific contributor within a board. Values serve as fallbacks when the contributor has not defined them on their profile. It can also be used to override contributor settings on this board without changing their global profile.",
2274
+ required: [
2275
+ "contributor"
2276
+ ],
2277
+ properties: {
2278
+ contributor: {
2279
+ type: "union",
2280
+ refs: [
2281
+ "com.atproto.repo.strongRef",
2282
+ "org.hypercerts.claim.activity#contributorIdentity"
2283
+ ],
2284
+ description: "Identifies the contributor being styled. A strong reference to an org.hypercerts.claim.contributorInformation record, or a contributorIdentity (DID or identifier string) for contributors without a dedicated record."
2285
+ },
2286
+ override: {
2287
+ type: "boolean",
2288
+ description: "When true, these values take precedence over the contributor's own profile and display settings. When false or omitted, they are only used as fallbacks if the contributor has not set their own settings."
2289
+ },
2290
+ displayName: {
2291
+ type: "string",
2292
+ description: "Display name for this contributor on this board.",
2293
+ maxLength: 640,
2294
+ maxGraphemes: 64
2295
+ },
2296
+ image: {
2297
+ type: "union",
2298
+ refs: [
2299
+ "org.hypercerts.defs#uri",
2300
+ "org.hypercerts.defs#smallImage"
2301
+ ],
2302
+ description: "Avatar or face image for this contributor on this board, as a URI or image blob."
2303
+ },
2304
+ video: {
2305
+ type: "union",
2306
+ refs: [
2307
+ "org.hypercerts.defs#uri",
2308
+ "org.hypercerts.defs#smallVideo"
2309
+ ],
2310
+ description: "Video for this contributor, as a URI (embed/direct link) or uploaded video blob."
2311
+ },
2312
+ hoverImage: {
2313
+ type: "union",
2314
+ refs: [
2315
+ "org.hypercerts.defs#uri",
2316
+ "org.hypercerts.defs#smallImage"
2317
+ ],
2318
+ description: "Image overlay shown when hovering over this contributor, as a URI or image blob."
2319
+ },
2320
+ hoverIframeUrl: {
2321
+ type: "string",
2322
+ format: "uri",
2323
+ description: "Iframe overlay shown when hovering over this contributor.",
2324
+ maxLength: 2048
2325
+ },
2326
+ url: {
2327
+ type: "string",
2328
+ format: "uri",
2329
+ description: "Click-through link URL for this contributor.",
2330
+ maxLength: 2048
2331
+ }
2332
+ }
2333
+ }
2334
+ };
2335
+ var HYPERBOARDS_BOARD_LEXICON_JSON = {
2336
+ lexicon: lexicon$e,
2337
+ id: id$B,
2338
+ defs: defs$g
2339
+ };
2340
+
2341
+ var lexicon$d = 1;
2342
+ var id$A = "org.hyperboards.displayProfile";
2343
+ var defs$f = {
2344
+ main: {
2345
+ type: "record",
2346
+ description: "User-declared visual presentation defaults for how a contributor appears on hyperboards. Stored in the contributor's own PDS and reusable across multiple boards.",
2347
+ key: "literal:self",
2348
+ record: {
2349
+ type: "object",
2350
+ required: [
2351
+ "createdAt"
2352
+ ],
2353
+ properties: {
2354
+ displayName: {
2355
+ type: "string",
2356
+ description: "Display name override for this user on hyperboards.",
2357
+ maxLength: 640,
2358
+ maxGraphemes: 64
2359
+ },
2360
+ image: {
2361
+ type: "union",
2362
+ refs: [
2363
+ "org.hypercerts.defs#uri",
2364
+ "org.hypercerts.defs#smallImage"
2365
+ ],
2366
+ description: "Avatar or face image override for this user on hyperboards, as a URI or image blob."
2367
+ },
2368
+ video: {
2369
+ type: "union",
2370
+ refs: [
2371
+ "org.hypercerts.defs#uri",
2372
+ "org.hypercerts.defs#smallVideo"
2373
+ ],
2374
+ description: "Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob."
2375
+ },
2376
+ hoverImage: {
2377
+ type: "union",
2378
+ refs: [
2379
+ "org.hypercerts.defs#uri",
2380
+ "org.hypercerts.defs#smallImage"
2381
+ ],
2382
+ description: "Default hover image for this user across boards, as a URI or image blob."
2383
+ },
2384
+ hoverIframeUrl: {
2385
+ type: "string",
2386
+ format: "uri",
2387
+ description: "Default hover iframe URL for this user across boards.",
2388
+ maxLength: 2048
2389
+ },
2390
+ url: {
2391
+ type: "string",
2392
+ format: "uri",
2393
+ description: "Default click-through link URL for this user across boards.",
2394
+ maxLength: 2048
2395
+ },
2396
+ createdAt: {
2397
+ type: "string",
2398
+ format: "datetime",
2399
+ description: "Client-declared timestamp when this record was originally created."
2400
+ }
2401
+ }
2402
+ }
2403
+ }
2404
+ };
2405
+ var HYPERBOARDS_DISPLAY_PROFILE_LEXICON_JSON = {
2406
+ lexicon: lexicon$d,
2407
+ id: id$A,
2408
+ defs: defs$f
2409
+ };
2410
+
2411
+ var lexicon$c = 1;
2412
+ var id$z = "org.hypercerts.claim.activity";
2413
+ var defs$e = {
2414
+ main: {
2415
+ type: "record",
2416
+ description: "A hypercert record tracking impact work.",
2417
+ key: "any",
2418
+ record: {
2419
+ type: "object",
2420
+ required: [
2421
+ "title",
2422
+ "shortDescription",
2423
+ "createdAt"
2424
+ ],
2425
+ properties: {
2426
+ title: {
2427
+ type: "string",
2428
+ description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
2429
+ maxLength: 256
2430
+ },
2431
+ shortDescription: {
2432
+ type: "string",
2433
+ description: "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
2434
+ maxLength: 3000,
2435
+ maxGraphemes: 300
2436
+ },
2437
+ shortDescriptionFacets: {
2438
+ type: "array",
2439
+ description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
2440
+ items: {
2441
+ type: "ref",
2442
+ ref: "app.bsky.richtext.facet"
2443
+ }
2444
+ },
2445
+ description: {
2446
+ type: "ref",
2447
+ ref: "pub.leaflet.pages.linearDocument#main",
2448
+ description: "Rich-text description, represented as a Leaflet linear document."
2449
+ },
2450
+ image: {
2451
+ type: "union",
2452
+ refs: [
2453
+ "org.hypercerts.defs#uri",
2454
+ "org.hypercerts.defs#smallImage"
2455
+ ],
2456
+ description: "The hypercert visual representation as a URI or image blob."
2457
+ },
2458
+ contributors: {
2459
+ type: "array",
2460
+ description: "An array of contributor objects, each containing contributor information, weight, and contribution details.",
2461
+ maxLength: 1000,
2462
+ items: {
2463
+ type: "ref",
2464
+ ref: "#contributor"
2465
+ }
2466
+ },
2467
+ workScope: {
2468
+ type: "union",
2469
+ refs: [
2470
+ "org.hypercerts.workscope.cel",
2471
+ "#workScopeString"
2472
+ ],
2473
+ description: "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes."
2474
+ },
2475
+ startDate: {
2476
+ type: "string",
2477
+ format: "datetime",
2478
+ description: "When the work began"
2479
+ },
2480
+ endDate: {
2481
+ type: "string",
2482
+ format: "datetime",
2483
+ description: "When the work ended"
2484
+ },
2485
+ locations: {
2486
+ type: "array",
2487
+ description: "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
2488
+ maxLength: 1000,
2489
+ items: {
2490
+ type: "ref",
2491
+ ref: "com.atproto.repo.strongRef"
2492
+ }
2493
+ },
2494
+ rights: {
2495
+ type: "ref",
2496
+ ref: "com.atproto.repo.strongRef",
2497
+ description: "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
2498
+ },
2499
+ createdAt: {
2500
+ type: "string",
2501
+ format: "datetime",
2502
+ description: "Client-declared timestamp when this record was originally created"
2503
+ }
2504
+ }
2505
+ }
2506
+ },
2507
+ contributor: {
2508
+ type: "object",
2509
+ required: [
2510
+ "contributorIdentity"
2511
+ ],
2512
+ properties: {
2513
+ contributorIdentity: {
2514
+ type: "union",
2515
+ refs: [
2516
+ "#contributorIdentity",
2517
+ "com.atproto.repo.strongRef"
2518
+ ],
2519
+ 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."
2520
+ },
2521
+ contributionWeight: {
2522
+ type: "string",
2523
+ 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.",
2524
+ maxLength: 100
2525
+ },
2526
+ contributionDetails: {
2527
+ type: "union",
2528
+ refs: [
2529
+ "#contributorRole",
2530
+ "com.atproto.repo.strongRef"
2531
+ ],
2532
+ 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."
2533
+ }
2534
+ }
2535
+ },
2536
+ contributorIdentity: {
2537
+ type: "object",
2538
+ description: "Contributor information as a string (DID or identifier).",
2539
+ required: [
2540
+ "identity"
2541
+ ],
2542
+ properties: {
2543
+ identity: {
2544
+ type: "string",
2545
+ description: "The contributor identity string (DID or identifier).",
2546
+ maxLength: 1000,
2547
+ maxGraphemes: 100
2548
+ }
2549
+ }
2550
+ },
2551
+ contributorRole: {
2552
+ type: "object",
2553
+ description: "Contribution details as a string.",
2554
+ required: [
2555
+ "role"
2556
+ ],
2557
+ properties: {
2558
+ role: {
2559
+ type: "string",
2560
+ description: "The contribution role or details.",
2561
+ maxLength: 1000,
2562
+ maxGraphemes: 100
2563
+ }
2564
+ }
2565
+ },
2566
+ workScopeString: {
2567
+ type: "object",
2568
+ description: "A free-form string describing the work scope for simple or legacy scopes.",
2569
+ required: [
2570
+ "scope"
2571
+ ],
2572
+ properties: {
2573
+ scope: {
2574
+ type: "string",
2575
+ description: "The work scope description string.",
2576
+ maxLength: 1000,
2577
+ maxGraphemes: 100
2578
+ }
2579
+ }
2580
+ }
2581
+ };
2582
+ var ACTIVITY_LEXICON_JSON = {
2583
+ lexicon: lexicon$c,
2584
+ id: id$z,
2585
+ defs: defs$e
2586
+ };
2587
+
2588
+ var lexicon$b = 1;
2589
+ var id$y = "org.hypercerts.claim.contribution";
2590
+ var defs$d = {
2591
+ main: {
2592
+ type: "record",
2593
+ description: "Details about a specific contribution including role, description, and timeframe.",
2594
+ key: "tid",
2595
+ record: {
2596
+ type: "object",
2597
+ required: [
2598
+ "createdAt"
2599
+ ],
2600
+ properties: {
2601
+ role: {
2602
+ type: "string",
2603
+ description: "Role or title of the contributor.",
2604
+ maxLength: 100
2605
+ },
2606
+ contributionDescription: {
2607
+ type: "string",
2608
+ description: "Description of what the contribution concretely involved.",
2609
+ maxLength: 10000,
2610
+ maxGraphemes: 1000
2611
+ },
2612
+ startDate: {
2613
+ type: "string",
2614
+ format: "datetime",
2615
+ description: "When this contribution started. Should fall within the parent hypercert's timeframe."
2616
+ },
2617
+ endDate: {
2618
+ type: "string",
2619
+ format: "datetime",
2620
+ description: "When this contribution finished. Should fall within the parent hypercert's timeframe."
2621
+ },
2622
+ createdAt: {
2623
+ type: "string",
2624
+ format: "datetime",
2625
+ description: "Client-declared timestamp when this record was originally created."
2626
+ }
2627
+ }
2628
+ }
2629
+ }
2630
+ };
2631
+ var CONTRIBUTION_LEXICON_JSON = {
1427
2632
  lexicon: lexicon$b,
1428
- id: id$r,
1429
- description: description,
2633
+ id: id$y,
1430
2634
  defs: defs$d
1431
2635
  };
1432
2636
 
1433
2637
  var lexicon$a = 1;
1434
- var id$q = "org.hypercerts.claim.activity";
2638
+ var id$x = "org.hypercerts.claim.contributorInformation";
1435
2639
  var defs$c = {
1436
2640
  main: {
1437
2641
  type: "record",
1438
- description: "A hypercert record tracking impact work.",
1439
- key: "any",
2642
+ description: "Contributor information including identifier, display name, and image.",
2643
+ key: "tid",
1440
2644
  record: {
1441
2645
  type: "object",
1442
2646
  required: [
1443
- "title",
1444
- "shortDescription",
1445
2647
  "createdAt"
1446
2648
  ],
1447
2649
  properties: {
1448
- title: {
1449
- type: "string",
1450
- description: "Title of the hypercert.",
1451
- maxLength: 256
1452
- },
1453
- shortDescription: {
2650
+ identifier: {
1454
2651
  type: "string",
1455
- description: "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
1456
- maxLength: 3000,
1457
- maxGraphemes: 300
1458
- },
1459
- shortDescriptionFacets: {
1460
- type: "array",
1461
- description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
1462
- items: {
1463
- type: "ref",
1464
- ref: "app.bsky.richtext.facet"
1465
- }
2652
+ description: "DID (did:plc:...) or URI to a social profile of the contributor.",
2653
+ maxLength: 2048
1466
2654
  },
1467
- description: {
2655
+ displayName: {
1468
2656
  type: "string",
1469
- description: "Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
1470
- maxLength: 30000,
1471
- maxGraphemes: 3000
1472
- },
1473
- descriptionFacets: {
1474
- type: "array",
1475
- description: "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
1476
- items: {
1477
- type: "ref",
1478
- ref: "app.bsky.richtext.facet"
1479
- }
2657
+ description: "Human-readable name for the contributor as it should appear in UI.",
2658
+ maxLength: 100
1480
2659
  },
1481
2660
  image: {
1482
2661
  type: "union",
@@ -1484,48 +2663,62 @@ var defs$c = {
1484
2663
  "org.hypercerts.defs#uri",
1485
2664
  "org.hypercerts.defs#smallImage"
1486
2665
  ],
1487
- description: "The hypercert visual representation as a URI or image blob."
1488
- },
1489
- workScope: {
1490
- type: "union",
1491
- refs: [
1492
- "org.hypercerts.defs#workScopeAll",
1493
- "org.hypercerts.defs#workScopeAny",
1494
- "org.hypercerts.defs#workScopeNot",
1495
- "org.hypercerts.defs#workScopeAtom"
1496
- ],
1497
- description: "Work scope logic expression using boolean operators (all/any/not) and atomic scope references."
2666
+ description: "The contributor visual representation as a URI or image blob."
1498
2667
  },
1499
- startDate: {
2668
+ createdAt: {
1500
2669
  type: "string",
1501
2670
  format: "datetime",
1502
- description: "When the work began"
1503
- },
1504
- endDate: {
2671
+ description: "Client-declared timestamp when this record was originally created."
2672
+ }
2673
+ }
2674
+ }
2675
+ }
2676
+ };
2677
+ var CONTRIBUTOR_INFORMATION_LEXICON_JSON = {
2678
+ lexicon: lexicon$a,
2679
+ id: id$x,
2680
+ defs: defs$c
2681
+ };
2682
+
2683
+ var lexicon$9 = 1;
2684
+ var id$w = "org.hypercerts.claim.rights";
2685
+ var defs$b = {
2686
+ main: {
2687
+ type: "record",
2688
+ description: "Describes the rights that a contributor and/or an owner has, such as whether the hypercert can be sold, transferred, and under what conditions.",
2689
+ key: "tid",
2690
+ record: {
2691
+ type: "object",
2692
+ required: [
2693
+ "rightsName",
2694
+ "rightsType",
2695
+ "rightsDescription",
2696
+ "createdAt"
2697
+ ],
2698
+ properties: {
2699
+ rightsName: {
1505
2700
  type: "string",
1506
- format: "datetime",
1507
- description: "When the work ended"
2701
+ description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
2702
+ maxLength: 100
1508
2703
  },
1509
- contributors: {
1510
- type: "array",
1511
- description: "An array of contributor objects, each containing contributor information, weight, and contribution details.",
1512
- items: {
1513
- type: "ref",
1514
- ref: "#contributor"
1515
- }
2704
+ rightsType: {
2705
+ type: "string",
2706
+ description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search",
2707
+ maxLength: 10
1516
2708
  },
1517
- rights: {
1518
- type: "ref",
1519
- ref: "com.atproto.repo.strongRef",
1520
- description: "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
2709
+ rightsDescription: {
2710
+ type: "string",
2711
+ description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
2712
+ maxLength: 10000,
2713
+ maxGraphemes: 1000
1521
2714
  },
1522
- locations: {
1523
- type: "array",
1524
- description: "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
1525
- items: {
1526
- type: "ref",
1527
- ref: "com.atproto.repo.strongRef"
1528
- }
2715
+ attachment: {
2716
+ type: "union",
2717
+ refs: [
2718
+ "org.hypercerts.defs#uri",
2719
+ "org.hypercerts.defs#smallBlob"
2720
+ ],
2721
+ description: "An attachment to define the rights further, e.g. a legal document."
1529
2722
  },
1530
2723
  createdAt: {
1531
2724
  type: "string",
@@ -1534,74 +2727,36 @@ var defs$c = {
1534
2727
  }
1535
2728
  }
1536
2729
  }
1537
- },
1538
- contributor: {
1539
- type: "object",
1540
- required: [
1541
- "contributorIdentity"
1542
- ],
1543
- properties: {
1544
- contributorIdentity: {
1545
- type: "union",
1546
- refs: [
1547
- "#contributorIdentity",
1548
- "com.atproto.repo.strongRef"
1549
- ],
1550
- description: "Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record."
1551
- },
1552
- contributionWeight: {
1553
- type: "string",
1554
- 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."
1555
- },
1556
- contributionDetails: {
1557
- type: "union",
1558
- refs: [
1559
- "#contributorRole",
1560
- "com.atproto.repo.strongRef"
1561
- ],
1562
- description: "Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record."
1563
- }
1564
- }
1565
- },
1566
- contributorIdentity: {
1567
- type: "string",
1568
- description: "Contributor information as a string (DID or identifier)."
1569
- },
1570
- contributorRole: {
1571
- type: "string",
1572
- description: "Contribution details as a string.",
1573
- maxLength: 10000,
1574
- maxGraphemes: 1000
1575
2730
  }
1576
2731
  };
1577
- var ACTIVITY_LEXICON_JSON = {
1578
- lexicon: lexicon$a,
1579
- id: id$q,
1580
- defs: defs$c
2732
+ var RIGHTS_LEXICON_JSON = {
2733
+ lexicon: lexicon$9,
2734
+ id: id$w,
2735
+ defs: defs$b
1581
2736
  };
1582
2737
 
1583
- var lexicon$9 = 1;
1584
- var id$p = "org.hypercerts.claim.collection";
1585
- var defs$b = {
2738
+ var lexicon$8 = 1;
2739
+ var id$v = "org.hypercerts.collection";
2740
+ var defs$a = {
1586
2741
  main: {
1587
2742
  type: "record",
1588
- description: "A collection/group of items (activities and/or other collections). Collections support recursive nesting. Use app.certified.location as a sidecar (same TID) for location metadata.",
2743
+ description: "A collection/group of items (activities and/or other collections). Collections support recursive nesting.",
1589
2744
  key: "tid",
1590
2745
  record: {
1591
2746
  type: "object",
1592
2747
  required: [
1593
2748
  "title",
1594
- "items",
1595
2749
  "createdAt"
1596
2750
  ],
1597
2751
  properties: {
1598
2752
  type: {
1599
2753
  type: "string",
1600
- description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection."
2754
+ description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
2755
+ maxLength: 64
1601
2756
  },
1602
2757
  title: {
1603
2758
  type: "string",
1604
- description: "The title of this collection",
2759
+ description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
1605
2760
  maxLength: 800,
1606
2761
  maxGraphemes: 80
1607
2762
  },
@@ -1635,11 +2790,17 @@ var defs$b = {
1635
2790
  items: {
1636
2791
  type: "array",
1637
2792
  description: "Array of items in this collection with optional weights.",
2793
+ maxLength: 1000,
1638
2794
  items: {
1639
2795
  type: "ref",
1640
2796
  ref: "#item"
1641
2797
  }
1642
2798
  },
2799
+ location: {
2800
+ type: "ref",
2801
+ ref: "com.atproto.repo.strongRef",
2802
+ 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."
2803
+ },
1643
2804
  createdAt: {
1644
2805
  type: "string",
1645
2806
  format: "datetime",
@@ -1657,54 +2818,59 @@ var defs$b = {
1657
2818
  itemIdentifier: {
1658
2819
  type: "ref",
1659
2820
  ref: "com.atproto.repo.strongRef",
1660
- description: "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection)."
2821
+ description: "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection)."
1661
2822
  },
1662
2823
  itemWeight: {
1663
2824
  type: "string",
1664
- 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."
2825
+ 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.",
2826
+ maxLength: 100
1665
2827
  }
1666
2828
  }
1667
2829
  }
1668
2830
  };
1669
- var COLLECTION_LEXICON_JSON = {
1670
- lexicon: lexicon$9,
1671
- id: id$p,
1672
- defs: defs$b
2831
+ var HYPERCERTS_COLLECTION_LEXICON_JSON = {
2832
+ lexicon: lexicon$8,
2833
+ id: id$v,
2834
+ defs: defs$a
1673
2835
  };
1674
2836
 
1675
- var lexicon$8 = 1;
1676
- var id$o = "org.hypercerts.claim.contributionDetails";
1677
- var defs$a = {
2837
+ var lexicon$7 = 1;
2838
+ var id$u = "org.hypercerts.context.acknowledgement";
2839
+ var defs$9 = {
1678
2840
  main: {
1679
2841
  type: "record",
1680
- description: "Details about a specific contribution including role, description, and timeframe.",
2842
+ description: "Acknowledges a record (subject) or its relationship in a context. Created in the acknowledging actor's repo to form a bidirectional link. Examples: a contributor acknowledging inclusion in an activity, an activity owner acknowledging inclusion in a collection, or a record owner acknowledging an evaluation.",
1681
2843
  key: "tid",
1682
2844
  record: {
1683
2845
  type: "object",
1684
2846
  required: [
2847
+ "subject",
2848
+ "acknowledged",
1685
2849
  "createdAt"
1686
2850
  ],
1687
2851
  properties: {
1688
- role: {
1689
- type: "string",
1690
- description: "Role or title of the contributor.",
1691
- maxLength: 100
2852
+ subject: {
2853
+ type: "ref",
2854
+ ref: "com.atproto.repo.strongRef",
2855
+ description: "The record being acknowledged (e.g. an activity, a contributor information record, an evaluation)."
1692
2856
  },
1693
- contributionDescription: {
1694
- type: "string",
1695
- description: "What the contribution concretely was.",
1696
- maxLength: 10000,
1697
- maxGraphemes: 1000
2857
+ context: {
2858
+ type: "union",
2859
+ refs: [
2860
+ "org.hypercerts.defs#uri",
2861
+ "com.atproto.repo.strongRef"
2862
+ ],
2863
+ description: "Context for the acknowledgement (e.g. the collection that includes an activity, or the activity that includes a contributor). A URI for a lightweight reference or a strong reference for content-hash verification."
1698
2864
  },
1699
- startDate: {
1700
- type: "string",
1701
- format: "datetime",
1702
- description: "When this contribution started. This should be a subset of the hypercert timeframe."
2865
+ acknowledged: {
2866
+ type: "boolean",
2867
+ description: "Whether the relationship is acknowledged (true) or rejected (false)."
1703
2868
  },
1704
- endDate: {
2869
+ comment: {
1705
2870
  type: "string",
1706
- format: "datetime",
1707
- description: "When this contribution finished. This should be a subset of the hypercert timeframe."
2871
+ description: "Optional plain-text comment providing additional context or reasoning.",
2872
+ maxLength: 10000,
2873
+ maxGraphemes: 1000
1708
2874
  },
1709
2875
  createdAt: {
1710
2876
  type: "string",
@@ -1715,41 +2881,80 @@ var defs$a = {
1715
2881
  }
1716
2882
  }
1717
2883
  };
1718
- var CONTRIBUTION_DETAILS_LEXICON_JSON = {
1719
- lexicon: lexicon$8,
1720
- id: id$o,
1721
- defs: defs$a
2884
+ var CONTEXT_ACKNOWLEDGEMENT_LEXICON_JSON = {
2885
+ lexicon: lexicon$7,
2886
+ id: id$u,
2887
+ defs: defs$9
1722
2888
  };
1723
2889
 
1724
- var lexicon$7 = 1;
1725
- var id$n = "org.hypercerts.claim.contributorInformation";
1726
- var defs$9 = {
2890
+ var lexicon$6 = 1;
2891
+ var id$t = "org.hypercerts.context.attachment";
2892
+ var defs$8 = {
1727
2893
  main: {
1728
2894
  type: "record",
1729
- description: "Contributor information including identifier, display name, and image.",
2895
+ description: "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).",
1730
2896
  key: "tid",
1731
2897
  record: {
1732
2898
  type: "object",
1733
2899
  required: [
2900
+ "title",
1734
2901
  "createdAt"
1735
2902
  ],
1736
2903
  properties: {
1737
- identifier: {
1738
- type: "string",
1739
- description: "DID or a URI to a social profile of the contributor."
2904
+ subjects: {
2905
+ type: "array",
2906
+ description: "References to the subject(s) the attachment is connected to—this may be an activity claim, outcome claim, measurement, evaluation, or even another attachment. This is optional as the attachment can exist before the claim is recorded.",
2907
+ items: {
2908
+ type: "ref",
2909
+ ref: "com.atproto.repo.strongRef"
2910
+ },
2911
+ maxLength: 100
1740
2912
  },
1741
- displayName: {
2913
+ contentType: {
1742
2914
  type: "string",
1743
- description: "Display name of the contributor.",
2915
+ maxLength: 64,
2916
+ description: "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc."
2917
+ },
2918
+ content: {
2919
+ type: "array",
2920
+ description: "The files, documents, or external references included in this attachment record.",
2921
+ items: {
2922
+ type: "union",
2923
+ refs: [
2924
+ "org.hypercerts.defs#uri",
2925
+ "org.hypercerts.defs#smallBlob"
2926
+ ]
2927
+ },
1744
2928
  maxLength: 100
1745
2929
  },
1746
- image: {
1747
- type: "union",
1748
- refs: [
1749
- "org.hypercerts.defs#uri",
1750
- "org.hypercerts.defs#smallImage"
1751
- ],
1752
- description: "The contributor visual representation as a URI or image blob."
2930
+ title: {
2931
+ type: "string",
2932
+ maxLength: 256,
2933
+ description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')"
2934
+ },
2935
+ shortDescription: {
2936
+ type: "string",
2937
+ description: "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
2938
+ maxLength: 3000,
2939
+ maxGraphemes: 300
2940
+ },
2941
+ shortDescriptionFacets: {
2942
+ type: "array",
2943
+ description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
2944
+ items: {
2945
+ type: "ref",
2946
+ ref: "app.bsky.richtext.facet"
2947
+ }
2948
+ },
2949
+ description: {
2950
+ type: "ref",
2951
+ ref: "pub.leaflet.pages.linearDocument#main",
2952
+ description: "Rich-text description, represented as a Leaflet linear document."
2953
+ },
2954
+ location: {
2955
+ type: "ref",
2956
+ ref: "com.atproto.repo.strongRef",
2957
+ description: "A strong reference to the location where this attachment's subject matter occurred. The record referenced must conform with the lexicon app.certified.location."
1753
2958
  },
1754
2959
  createdAt: {
1755
2960
  type: "string",
@@ -1760,38 +2965,15 @@ var defs$9 = {
1760
2965
  }
1761
2966
  }
1762
2967
  };
1763
- var CONTRIBUTOR_INFORMATION_LEXICON_JSON = {
1764
- lexicon: lexicon$7,
1765
- id: id$n,
1766
- defs: defs$9
2968
+ var CONTEXT_ATTACHMENT_LEXICON_JSON = {
2969
+ lexicon: lexicon$6,
2970
+ id: id$t,
2971
+ defs: defs$8
1767
2972
  };
1768
2973
 
1769
- var lexicon$6 = 1;
1770
- var id$m = "org.hypercerts.claim.evaluation";
1771
- var defs$8 = {
1772
- score: {
1773
- type: "object",
1774
- description: "Overall score for an evaluation on a numeric scale.",
1775
- required: [
1776
- "min",
1777
- "max",
1778
- "value"
1779
- ],
1780
- properties: {
1781
- min: {
1782
- type: "integer",
1783
- description: "Minimum value of the scale, e.g. 0 or 1."
1784
- },
1785
- max: {
1786
- type: "integer",
1787
- description: "Maximum value of the scale, e.g. 5 or 10."
1788
- },
1789
- value: {
1790
- type: "integer",
1791
- description: "Score within the inclusive range [min, max]."
1792
- }
1793
- }
1794
- },
2974
+ var lexicon$5 = 1;
2975
+ var id$s = "org.hypercerts.context.evaluation";
2976
+ var defs$7 = {
1795
2977
  main: {
1796
2978
  type: "record",
1797
2979
  description: "An evaluation of a hypercert record (e.g. an activity and its impact).",
@@ -1807,7 +2989,7 @@ var defs$8 = {
1807
2989
  subject: {
1808
2990
  type: "ref",
1809
2991
  ref: "com.atproto.repo.strongRef",
1810
- description: "A strong reference to what is being evaluated. (e.g activity, measurement, contribution, etc.)"
2992
+ description: "A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)"
1811
2993
  },
1812
2994
  evaluators: {
1813
2995
  type: "array",
@@ -1832,7 +3014,7 @@ var defs$8 = {
1832
3014
  },
1833
3015
  measurements: {
1834
3016
  type: "array",
1835
- description: "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.claim.measurement",
3017
+ description: "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement",
1836
3018
  items: {
1837
3019
  type: "ref",
1838
3020
  ref: "com.atproto.repo.strongRef"
@@ -1862,123 +3044,96 @@ var defs$8 = {
1862
3044
  }
1863
3045
  }
1864
3046
  }
1865
- }
1866
- };
1867
- var EVALUATION_LEXICON_JSON = {
1868
- lexicon: lexicon$6,
1869
- id: id$m,
1870
- defs: defs$8
1871
- };
1872
-
1873
- var lexicon$5 = 1;
1874
- var id$l = "org.hypercerts.claim.evidence";
1875
- var defs$7 = {
1876
- main: {
1877
- type: "record",
1878
- description: "A piece of evidence related to a hypercert record (e.g. an activity, project, claim, or evaluation). Evidence may support, clarify, or challenge the referenced subject.",
1879
- key: "tid",
1880
- record: {
1881
- type: "object",
1882
- required: [
1883
- "content",
1884
- "title",
1885
- "createdAt"
1886
- ],
1887
- properties: {
1888
- subject: {
1889
- type: "ref",
1890
- ref: "com.atproto.repo.strongRef",
1891
- description: "A strong reference to the record this evidence relates to (e.g. an activity, project, claim, or evaluation)."
1892
- },
1893
- content: {
1894
- type: "union",
1895
- refs: [
1896
- "org.hypercerts.defs#uri",
1897
- "org.hypercerts.defs#smallBlob"
1898
- ],
1899
- description: "A piece of evidence (URI or blob) related to the subject record; it may support, clarify, or challenge a hypercert claim."
1900
- },
1901
- title: {
1902
- type: "string",
1903
- maxLength: 256,
1904
- description: "Title to describe the nature of the evidence."
1905
- },
1906
- shortDescription: {
1907
- type: "string",
1908
- maxLength: 3000,
1909
- maxGraphemes: 300,
1910
- description: "Short description explaining what this evidence shows."
1911
- },
1912
- description: {
1913
- type: "string",
1914
- description: "Longer description describing the evidence in more detail.",
1915
- maxLength: 30000,
1916
- maxGraphemes: 3000
1917
- },
1918
- relationType: {
1919
- type: "string",
1920
- description: "How this evidence relates to the subject.",
1921
- knownValues: [
1922
- "supports",
1923
- "challenges",
1924
- "clarifies"
1925
- ]
1926
- },
1927
- createdAt: {
1928
- type: "string",
1929
- format: "datetime",
1930
- description: "Client-declared timestamp when this record was originally created"
1931
- }
3047
+ },
3048
+ score: {
3049
+ type: "object",
3050
+ description: "Overall score for an evaluation on a numeric scale.",
3051
+ required: [
3052
+ "min",
3053
+ "max",
3054
+ "value"
3055
+ ],
3056
+ properties: {
3057
+ min: {
3058
+ type: "integer",
3059
+ description: "Minimum value of the scale, e.g. 0 or 1."
3060
+ },
3061
+ max: {
3062
+ type: "integer",
3063
+ description: "Maximum value of the scale, e.g. 5 or 10."
3064
+ },
3065
+ value: {
3066
+ type: "integer",
3067
+ description: "Score within the inclusive range [min, max]."
1932
3068
  }
1933
3069
  }
1934
3070
  }
1935
3071
  };
1936
- var EVIDENCE_LEXICON_JSON = {
3072
+ var CONTEXT_EVALUATION_LEXICON_JSON = {
1937
3073
  lexicon: lexicon$5,
1938
- id: id$l,
3074
+ id: id$s,
1939
3075
  defs: defs$7
1940
3076
  };
1941
3077
 
1942
3078
  var lexicon$4 = 1;
1943
- var id$k = "org.hypercerts.claim.measurement";
3079
+ var id$r = "org.hypercerts.context.measurement";
1944
3080
  var defs$6 = {
1945
3081
  main: {
1946
3082
  type: "record",
1947
- description: "Measurement data related to a hypercert record (e.g. an activity and its impact).",
3083
+ description: "Measurement data related to one or more records (e.g. activities, projects, etc.).",
1948
3084
  key: "tid",
1949
3085
  record: {
1950
3086
  type: "object",
1951
3087
  required: [
1952
- "measurers",
1953
3088
  "metric",
3089
+ "unit",
1954
3090
  "value",
1955
3091
  "createdAt"
1956
3092
  ],
1957
3093
  properties: {
1958
- subject: {
1959
- type: "ref",
1960
- ref: "com.atproto.repo.strongRef",
1961
- description: "A strong reference to the record this measurement refers to (e.g. an activity, project, or claim)."
1962
- },
1963
- measurers: {
3094
+ subjects: {
1964
3095
  type: "array",
1965
- description: "DIDs of the entity (or entities) that measured this data",
3096
+ description: "Strong references to the records this measurement refers to (e.g. activities, projects, or claims).",
1966
3097
  items: {
1967
3098
  type: "ref",
1968
- ref: "app.certified.defs#did"
3099
+ ref: "com.atproto.repo.strongRef"
1969
3100
  },
1970
3101
  maxLength: 100
1971
3102
  },
1972
3103
  metric: {
1973
3104
  type: "string",
1974
- description: "The metric being measured",
3105
+ description: "The metric being measured, e.g. forest area restored, number of users, etc.",
1975
3106
  maxLength: 500
1976
3107
  },
3108
+ unit: {
3109
+ type: "string",
3110
+ description: "The unit of the measured value (e.g. kg CO₂e, hectares, %, index score).",
3111
+ maxLength: 50
3112
+ },
1977
3113
  value: {
1978
3114
  type: "string",
1979
- description: "The measured value",
3115
+ description: "The measured value as a numeric string (e.g. '1234.56')",
1980
3116
  maxLength: 500
1981
3117
  },
3118
+ startDate: {
3119
+ type: "string",
3120
+ format: "datetime",
3121
+ description: "The start date and time when the measurement began."
3122
+ },
3123
+ endDate: {
3124
+ type: "string",
3125
+ format: "datetime",
3126
+ description: "The end date and time when the measurement ended. For one-time measurements, this should equal the start date."
3127
+ },
3128
+ locations: {
3129
+ type: "array",
3130
+ description: "Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon.",
3131
+ items: {
3132
+ type: "ref",
3133
+ ref: "com.atproto.repo.strongRef"
3134
+ },
3135
+ maxLength: 100
3136
+ },
1982
3137
  methodType: {
1983
3138
  type: "string",
1984
3139
  description: "Short identifier for the measurement methodology",
@@ -1998,63 +3153,28 @@ var defs$6 = {
1998
3153
  },
1999
3154
  maxLength: 50
2000
3155
  },
2001
- location: {
2002
- type: "ref",
2003
- ref: "com.atproto.repo.strongRef",
2004
- description: "A strong reference to the location where the measurement was taken. The record referenced must conform with the lexicon app.certified.location"
2005
- },
2006
- createdAt: {
2007
- type: "string",
2008
- format: "datetime",
2009
- description: "Client-declared timestamp when this record was originally created"
2010
- }
2011
- }
2012
- }
2013
- }
2014
- };
2015
- var MEASUREMENT_LEXICON_JSON = {
2016
- lexicon: lexicon$4,
2017
- id: id$k,
2018
- defs: defs$6
2019
- };
2020
-
2021
- var lexicon$3 = 1;
2022
- var id$j = "org.hypercerts.claim.rights";
2023
- var defs$5 = {
2024
- main: {
2025
- type: "record",
2026
- description: "Describes the rights that a contributor and/or an owner has, such as whether the hypercert can be sold, transferred, and under what conditions.",
2027
- key: "tid",
2028
- record: {
2029
- type: "object",
2030
- required: [
2031
- "rightsName",
2032
- "rightsType",
2033
- "rightsDescription",
2034
- "createdAt"
2035
- ],
2036
- properties: {
2037
- rightsName: {
2038
- type: "string",
2039
- description: "Full name of the rights",
3156
+ measurers: {
3157
+ type: "array",
3158
+ description: "DIDs of the entities that performed this measurement",
3159
+ items: {
3160
+ type: "ref",
3161
+ ref: "app.certified.defs#did"
3162
+ },
2040
3163
  maxLength: 100
2041
3164
  },
2042
- rightsType: {
2043
- type: "string",
2044
- description: "Short rights identifier for easier search",
2045
- maxLength: 10
2046
- },
2047
- rightsDescription: {
3165
+ comment: {
2048
3166
  type: "string",
2049
- description: "Description of the rights of this hypercert"
3167
+ description: "Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`.",
3168
+ maxLength: 3000,
3169
+ maxGraphemes: 300
2050
3170
  },
2051
- attachment: {
2052
- type: "union",
2053
- refs: [
2054
- "org.hypercerts.defs#uri",
2055
- "org.hypercerts.defs#smallBlob"
2056
- ],
2057
- description: "An attachment to define the rights further, e.g. a legal document."
3171
+ commentFacets: {
3172
+ type: "array",
3173
+ description: "Rich text annotations for `comment` (mentions, URLs, hashtags, etc).",
3174
+ items: {
3175
+ type: "ref",
3176
+ ref: "app.bsky.richtext.facet"
3177
+ }
2058
3178
  },
2059
3179
  createdAt: {
2060
3180
  type: "string",
@@ -2065,15 +3185,16 @@ var defs$5 = {
2065
3185
  }
2066
3186
  }
2067
3187
  };
2068
- var RIGHTS_LEXICON_JSON = {
2069
- lexicon: lexicon$3,
2070
- id: id$j,
2071
- defs: defs$5
3188
+ var CONTEXT_MEASUREMENT_LEXICON_JSON = {
3189
+ lexicon: lexicon$4,
3190
+ id: id$r,
3191
+ defs: defs$6
2072
3192
  };
2073
3193
 
2074
- var lexicon$2 = 1;
2075
- var id$i = "org.hypercerts.defs";
2076
- var defs$4 = {
3194
+ var lexicon$3 = 1;
3195
+ var id$q = "org.hypercerts.defs";
3196
+ var description = "Common type definitions used across all Hypercerts protocols.";
3197
+ var defs$5 = {
2077
3198
  uri: {
2078
3199
  type: "object",
2079
3200
  required: [
@@ -2084,7 +3205,6 @@ var defs$4 = {
2084
3205
  uri: {
2085
3206
  type: "string",
2086
3207
  format: "uri",
2087
- maxGraphemes: 1024,
2088
3208
  description: "URI to external data"
2089
3209
  }
2090
3210
  }
@@ -2138,140 +3258,60 @@ var defs$4 = {
2138
3258
  "image/png",
2139
3259
  "image/webp"
2140
3260
  ],
2141
- maxSize: 5242880,
2142
- description: "Image (up to 5MB)"
2143
- }
2144
- }
2145
- },
2146
- largeImage: {
2147
- type: "object",
2148
- required: [
2149
- "image"
2150
- ],
2151
- description: "Object containing a large image",
2152
- properties: {
2153
- image: {
2154
- type: "blob",
2155
- accept: [
2156
- "image/jpeg",
2157
- "image/jpg",
2158
- "image/png",
2159
- "image/webp"
2160
- ],
2161
- maxSize: 10485760,
2162
- description: "Image (up to 10MB)"
2163
- }
2164
- }
2165
- },
2166
- workScopeAll: {
2167
- type: "object",
2168
- required: [
2169
- "op",
2170
- "args"
2171
- ],
2172
- description: "Logical AND operation: all arguments must be satisfied.",
2173
- properties: {
2174
- op: {
2175
- type: "string",
2176
- "const": "all",
2177
- description: "Operator type: 'all' (logical AND)"
2178
- },
2179
- args: {
2180
- type: "array",
2181
- items: {
2182
- type: "union",
2183
- refs: [
2184
- "#workScopeAll",
2185
- "#workScopeAny",
2186
- "#workScopeNot",
2187
- "#workScopeAtom"
2188
- ]
2189
- },
2190
- minLength: 1,
2191
- maxLength: 100,
2192
- description: "Array of work scope expressions that must all be satisfied"
2193
- }
2194
- }
2195
- },
2196
- workScopeAny: {
2197
- type: "object",
2198
- required: [
2199
- "op",
2200
- "args"
2201
- ],
2202
- description: "Logical OR operation: at least one argument must be satisfied.",
2203
- properties: {
2204
- op: {
2205
- type: "string",
2206
- "const": "any",
2207
- description: "Operator type: 'any' (logical OR)"
2208
- },
2209
- args: {
2210
- type: "array",
2211
- items: {
2212
- type: "union",
2213
- refs: [
2214
- "#workScopeAll",
2215
- "#workScopeAny",
2216
- "#workScopeNot",
2217
- "#workScopeAtom"
2218
- ]
2219
- },
2220
- minLength: 1,
2221
- maxLength: 100,
2222
- description: "Array of work scope expressions, at least one of which must be satisfied"
3261
+ maxSize: 5242880,
3262
+ description: "Image (up to 5MB)"
2223
3263
  }
2224
3264
  }
2225
3265
  },
2226
- workScopeNot: {
3266
+ smallVideo: {
2227
3267
  type: "object",
2228
3268
  required: [
2229
- "op",
2230
- "arg"
3269
+ "video"
2231
3270
  ],
2232
- description: "Logical NOT operation: the argument must not be satisfied.",
3271
+ description: "Object containing a small video",
2233
3272
  properties: {
2234
- op: {
2235
- type: "string",
2236
- "const": "not",
2237
- description: "Operator type: 'not' (logical NOT)"
2238
- },
2239
- arg: {
2240
- type: "union",
2241
- refs: [
2242
- "#workScopeAll",
2243
- "#workScopeAny",
2244
- "#workScopeNot",
2245
- "#workScopeAtom"
3273
+ video: {
3274
+ type: "blob",
3275
+ accept: [
3276
+ "video/mp4",
3277
+ "video/webm"
2246
3278
  ],
2247
- description: "Work scope expression that must not be satisfied"
3279
+ maxSize: 20971520,
3280
+ description: "Video (up to 20MB)"
2248
3281
  }
2249
3282
  }
2250
3283
  },
2251
- workScopeAtom: {
3284
+ largeImage: {
2252
3285
  type: "object",
2253
3286
  required: [
2254
- "atom"
3287
+ "image"
2255
3288
  ],
2256
- description: "Atomic scope reference: a strong reference to a scope record.",
3289
+ description: "Object containing a large image",
2257
3290
  properties: {
2258
- atom: {
2259
- type: "ref",
2260
- ref: "com.atproto.repo.strongRef",
2261
- description: "Strong reference to an org.hypercerts.helper.workScopeTag record"
3291
+ image: {
3292
+ type: "blob",
3293
+ accept: [
3294
+ "image/jpeg",
3295
+ "image/jpg",
3296
+ "image/png",
3297
+ "image/webp"
3298
+ ],
3299
+ maxSize: 10485760,
3300
+ description: "Image (up to 10MB)"
2262
3301
  }
2263
3302
  }
2264
3303
  }
2265
3304
  };
2266
3305
  var HYPERCERTS_DEFS_LEXICON_JSON = {
2267
- lexicon: lexicon$2,
2268
- id: id$i,
2269
- defs: defs$4
3306
+ lexicon: lexicon$3,
3307
+ id: id$q,
3308
+ description: description,
3309
+ defs: defs$5
2270
3310
  };
2271
3311
 
2272
- var lexicon$1 = 1;
2273
- var id$h = "org.hypercerts.funding.receipt";
2274
- var defs$3 = {
3312
+ var lexicon$2 = 1;
3313
+ var id$p = "org.hypercerts.funding.receipt";
3314
+ var defs$4 = {
2275
3315
  main: {
2276
3316
  type: "record",
2277
3317
  description: "Records a funding receipt for a payment from one user to another user. It may be recorded by the recipient, by the sender, or by a third party. The sender may remain anonymous.",
@@ -2293,27 +3333,33 @@ var defs$3 = {
2293
3333
  },
2294
3334
  to: {
2295
3335
  type: "string",
2296
- description: "The recipient of the funds. Can be identified by DID or a clear-text name."
3336
+ description: "The recipient of the funds. Can be identified by DID or a clear-text name.",
3337
+ maxLength: 2048
2297
3338
  },
2298
3339
  amount: {
2299
3340
  type: "string",
2300
- description: "Amount of funding received."
3341
+ description: "Amount of funding received as a numeric string (e.g. '1000.50').",
3342
+ maxLength: 50
2301
3343
  },
2302
3344
  currency: {
2303
3345
  type: "string",
2304
- description: "Currency of the payment (e.g. EUR, USD, ETH)."
3346
+ description: "Currency of the payment (e.g. EUR, USD, ETH).",
3347
+ maxLength: 10
2305
3348
  },
2306
3349
  paymentRail: {
2307
3350
  type: "string",
2308
- description: "How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor)."
3351
+ description: "How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).",
3352
+ maxLength: 50
2309
3353
  },
2310
3354
  paymentNetwork: {
2311
3355
  type: "string",
2312
- description: "Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal)."
3356
+ description: "Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).",
3357
+ maxLength: 50
2313
3358
  },
2314
3359
  transactionId: {
2315
3360
  type: "string",
2316
- description: "Identifier of the underlying payment transaction (e.g. bank reference, onchain transaction hash, or processor-specific ID). Use paymentNetwork to specify the network where applicable."
3361
+ description: "Identifier of the underlying payment transaction (e.g. bank reference, onchain transaction hash, or processor-specific ID). Use paymentNetwork to specify the network where applicable.",
3362
+ maxLength: 256
2317
3363
  },
2318
3364
  "for": {
2319
3365
  type: "string",
@@ -2340,44 +3386,95 @@ var defs$3 = {
2340
3386
  }
2341
3387
  };
2342
3388
  var FUNDING_RECEIPT_LEXICON_JSON = {
3389
+ lexicon: lexicon$2,
3390
+ id: id$p,
3391
+ defs: defs$4
3392
+ };
3393
+
3394
+ var lexicon$1 = 1;
3395
+ var id$o = "org.hypercerts.workscope.cel";
3396
+ var defs$3 = {
3397
+ main: {
3398
+ type: "object",
3399
+ description: "A structured, machine-evaluable work scope definition using CEL (Common Expression Language). Tags referenced in the expression correspond to org.hypercerts.workscope.tag keys. See https://github.com/google/cel-spec. Note: this is intentionally type 'object' (not 'record') so it can be directly embedded inline in union types (e.g., activity.workScope) without requiring a separate collection or strongRef indirection.",
3400
+ required: [
3401
+ "expression",
3402
+ "usedTags",
3403
+ "version",
3404
+ "createdAt"
3405
+ ],
3406
+ properties: {
3407
+ expression: {
3408
+ type: "string",
3409
+ maxLength: 10000,
3410
+ maxGraphemes: 5000,
3411
+ description: "A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE'"
3412
+ },
3413
+ usedTags: {
3414
+ type: "array",
3415
+ items: {
3416
+ type: "ref",
3417
+ ref: "com.atproto.repo.strongRef"
3418
+ },
3419
+ maxLength: 100,
3420
+ description: "Strong references to org.hypercerts.workscope.tag records used in the expression. Enables fast indexing by AT-URI and provides referential integrity to the underlying tag records."
3421
+ },
3422
+ version: {
3423
+ type: "string",
3424
+ maxLength: 16,
3425
+ knownValues: [
3426
+ "v1"
3427
+ ],
3428
+ description: "CEL context schema version."
3429
+ },
3430
+ createdAt: {
3431
+ type: "string",
3432
+ format: "datetime",
3433
+ description: "Client-declared timestamp when this expression was originally created."
3434
+ }
3435
+ }
3436
+ }
3437
+ };
3438
+ var WORKSCOPE_CEL_LEXICON_JSON = {
2343
3439
  lexicon: lexicon$1,
2344
- id: id$h,
3440
+ id: id$o,
2345
3441
  defs: defs$3
2346
3442
  };
2347
3443
 
2348
3444
  var lexicon = 1;
2349
- var id$g = "org.hypercerts.helper.workScopeTag";
3445
+ var id$n = "org.hypercerts.workscope.tag";
2350
3446
  var defs$2 = {
2351
3447
  main: {
2352
3448
  type: "record",
2353
- description: "A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels.",
3449
+ description: "A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels. Tags are composed into structured expressions via CEL (Common Expression Language) on activity records.",
2354
3450
  key: "tid",
2355
3451
  record: {
2356
3452
  type: "object",
2357
3453
  required: [
2358
- "createdAt",
2359
3454
  "key",
2360
- "label"
3455
+ "name",
3456
+ "createdAt"
2361
3457
  ],
2362
3458
  properties: {
2363
- createdAt: {
2364
- type: "string",
2365
- format: "datetime",
2366
- description: "Client-declared timestamp when this record was originally created"
2367
- },
2368
3459
  key: {
2369
3460
  type: "string",
2370
- description: "Lowercase, hyphenated machine-readable key for this scope (e.g., 'ipfs', 'go-lang', 'filecoin').",
3461
+ description: "Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions.",
2371
3462
  maxLength: 120
2372
3463
  },
2373
- label: {
3464
+ name: {
2374
3465
  type: "string",
2375
- description: "Human-readable label for this scope.",
3466
+ description: "Human-readable name for this scope.",
2376
3467
  maxLength: 200
2377
3468
  },
2378
- kind: {
3469
+ category: {
2379
3470
  type: "string",
2380
- description: "Category type of this scope. Recommended values: topic, language, domain, method, tag.",
3471
+ description: "Category type of this scope.",
3472
+ knownValues: [
3473
+ "topic",
3474
+ "language",
3475
+ "domain",
3476
+ "method"
3477
+ ],
2381
3478
  maxLength: 50
2382
3479
  },
2383
3480
  description: {
@@ -2389,7 +3486,22 @@ var defs$2 = {
2389
3486
  parent: {
2390
3487
  type: "ref",
2391
3488
  ref: "com.atproto.repo.strongRef",
2392
- description: "Optional strong reference to a parent scope record for taxonomy/hierarchy support."
3489
+ description: "Optional strong reference to a parent work scope tag record for taxonomy/hierarchy support. The record referenced must conform with the lexicon org.hypercerts.workscope.tag."
3490
+ },
3491
+ status: {
3492
+ type: "string",
3493
+ description: "Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy.",
3494
+ knownValues: [
3495
+ "proposed",
3496
+ "accepted",
3497
+ "deprecated"
3498
+ ],
3499
+ maxLength: 20
3500
+ },
3501
+ supersededBy: {
3502
+ type: "ref",
3503
+ ref: "com.atproto.repo.strongRef",
3504
+ description: "When status is 'deprecated', points to the replacement work scope tag record. The record referenced must conform with the lexicon org.hypercerts.workscope.tag."
2393
3505
  },
2394
3506
  aliases: {
2395
3507
  type: "array",
@@ -2398,46 +3510,201 @@ var defs$2 = {
2398
3510
  maxLength: 200
2399
3511
  },
2400
3512
  maxLength: 50,
2401
- description: "Optional array of alternative names or identifiers for this scope."
3513
+ description: "Alternative human-readable names for this scope (e.g., translations, abbreviations, or common synonyms). Unlike sameAs, these are plain-text labels, not links to external ontologies."
3514
+ },
3515
+ sameAs: {
3516
+ type: "array",
3517
+ items: {
3518
+ type: "string",
3519
+ format: "uri",
3520
+ maxLength: 2048
3521
+ },
3522
+ maxLength: 20,
3523
+ description: "URIs to semantically equivalent concepts in external ontologies or taxonomies (e.g., Wikidata QIDs, ENVO terms, SDG targets). Used for interoperability, not as documentation."
2402
3524
  },
2403
- externalReference: {
3525
+ referenceDocument: {
2404
3526
  type: "union",
2405
3527
  refs: [
2406
3528
  "org.hypercerts.defs#uri",
2407
3529
  "org.hypercerts.defs#smallBlob"
2408
3530
  ],
2409
- description: "Optional external reference for this scope as a URI or blob."
3531
+ description: "Link to a governance or reference document where this work scope tag is defined and further explained."
3532
+ },
3533
+ createdAt: {
3534
+ type: "string",
3535
+ format: "datetime",
3536
+ description: "Client-declared timestamp when this record was originally created."
2410
3537
  }
2411
3538
  }
2412
3539
  }
2413
3540
  }
2414
3541
  };
2415
- var HELPER_WORK_SCOPE_TAG_LEXICON_JSON = {
3542
+ var WORKSCOPE_TAG_LEXICON_JSON = {
2416
3543
  lexicon: lexicon,
2417
- id: id$g,
3544
+ id: id$n,
2418
3545
  defs: defs$2
2419
3546
  };
2420
3547
 
2421
- const is$typed$f = is$typed$g, validate$f = validate$g;
2422
- const id$f = 'app.certified.badge.award';
3548
+ const is$typed$m = is$typed$n, validate$m = validate$n;
3549
+ const id$m = 'app.certified.actor.organization';
3550
+ const hashMain$k = 'main';
3551
+ function isMain$k(v) {
3552
+ return is$typed$m(v, id$m, hashMain$k);
3553
+ }
3554
+ function validateMain$k(v) {
3555
+ return validate$m(v, id$m, hashMain$k, true);
3556
+ }
3557
+ const hashUrlItem = 'urlItem';
3558
+ function isUrlItem(v) {
3559
+ return is$typed$m(v, id$m, hashUrlItem);
3560
+ }
3561
+ function validateUrlItem(v) {
3562
+ return validate$m(v, id$m, hashUrlItem);
3563
+ }
3564
+
3565
+ var organization = /*#__PURE__*/Object.freeze({
3566
+ __proto__: null,
3567
+ isMain: isMain$k,
3568
+ isRecord: isMain$k,
3569
+ isUrlItem: isUrlItem,
3570
+ validateMain: validateMain$k,
3571
+ validateRecord: validateMain$k,
3572
+ validateUrlItem: validateUrlItem
3573
+ });
3574
+
3575
+ const is$typed$l = is$typed$n, validate$l = validate$n;
3576
+ const id$l = 'app.certified.actor.profile';
3577
+ const hashMain$j = 'main';
3578
+ function isMain$j(v) {
3579
+ return is$typed$l(v, id$l, hashMain$j);
3580
+ }
3581
+ function validateMain$j(v) {
3582
+ return validate$l(v, id$l, hashMain$j, true);
3583
+ }
3584
+
3585
+ var profile = /*#__PURE__*/Object.freeze({
3586
+ __proto__: null,
3587
+ isMain: isMain$j,
3588
+ isRecord: isMain$j,
3589
+ validateMain: validateMain$j,
3590
+ validateRecord: validateMain$j
3591
+ });
3592
+
3593
+ const is$typed$k = is$typed$n, validate$k = validate$n;
3594
+ const id$k = 'app.certified.badge.award';
3595
+ const hashMain$i = 'main';
3596
+ function isMain$i(v) {
3597
+ return is$typed$k(v, id$k, hashMain$i);
3598
+ }
3599
+ function validateMain$i(v) {
3600
+ return validate$k(v, id$k, hashMain$i, true);
3601
+ }
3602
+
3603
+ var award = /*#__PURE__*/Object.freeze({
3604
+ __proto__: null,
3605
+ isMain: isMain$i,
3606
+ isRecord: isMain$i,
3607
+ validateMain: validateMain$i,
3608
+ validateRecord: validateMain$i
3609
+ });
3610
+
3611
+ const is$typed$j = is$typed$n, validate$j = validate$n;
3612
+ const id$j = 'app.certified.badge.definition';
3613
+ const hashMain$h = 'main';
3614
+ function isMain$h(v) {
3615
+ return is$typed$j(v, id$j, hashMain$h);
3616
+ }
3617
+ function validateMain$h(v) {
3618
+ return validate$j(v, id$j, hashMain$h, true);
3619
+ }
3620
+
3621
+ var definition = /*#__PURE__*/Object.freeze({
3622
+ __proto__: null,
3623
+ isMain: isMain$h,
3624
+ isRecord: isMain$h,
3625
+ validateMain: validateMain$h,
3626
+ validateRecord: validateMain$h
3627
+ });
3628
+
3629
+ const is$typed$i = is$typed$n, validate$i = validate$n;
3630
+ const id$i = 'app.certified.badge.response';
3631
+ const hashMain$g = 'main';
3632
+ function isMain$g(v) {
3633
+ return is$typed$i(v, id$i, hashMain$g);
3634
+ }
3635
+ function validateMain$g(v) {
3636
+ return validate$i(v, id$i, hashMain$g, true);
3637
+ }
3638
+
3639
+ var response = /*#__PURE__*/Object.freeze({
3640
+ __proto__: null,
3641
+ isMain: isMain$g,
3642
+ isRecord: isMain$g,
3643
+ validateMain: validateMain$g,
3644
+ validateRecord: validateMain$g
3645
+ });
3646
+
3647
+ const is$typed$h = is$typed$n, validate$h = validate$n;
3648
+ const id$h = 'app.certified.defs';
3649
+ const hashDid = 'did';
3650
+ function isDid(v) {
3651
+ return is$typed$h(v, id$h, hashDid);
3652
+ }
3653
+ function validateDid(v) {
3654
+ return validate$h(v, id$h, hashDid);
3655
+ }
3656
+
3657
+ var defs$1 = /*#__PURE__*/Object.freeze({
3658
+ __proto__: null,
3659
+ isDid: isDid,
3660
+ validateDid: validateDid
3661
+ });
3662
+
3663
+ const is$typed$g = is$typed$n, validate$g = validate$n;
3664
+ const id$g = 'app.certified.location';
3665
+ const hashMain$f = 'main';
3666
+ function isMain$f(v) {
3667
+ return is$typed$g(v, id$g, hashMain$f);
3668
+ }
3669
+ function validateMain$f(v) {
3670
+ return validate$g(v, id$g, hashMain$f, true);
3671
+ }
3672
+ const hashString = 'string';
3673
+ function isString(v) {
3674
+ return is$typed$g(v, id$g, hashString);
3675
+ }
3676
+ function validateString(v) {
3677
+ return validate$g(v, id$g, hashString);
3678
+ }
3679
+
3680
+ var location = /*#__PURE__*/Object.freeze({
3681
+ __proto__: null,
3682
+ isMain: isMain$f,
3683
+ isRecord: isMain$f,
3684
+ isString: isString,
3685
+ validateMain: validateMain$f,
3686
+ validateRecord: validateMain$f,
3687
+ validateString: validateString
3688
+ });
3689
+
3690
+ const is$typed$f = is$typed$n, validate$f = validate$n;
3691
+ const id$f = 'com.atproto.repo.strongRef';
2423
3692
  const hashMain$e = 'main';
2424
3693
  function isMain$e(v) {
2425
3694
  return is$typed$f(v, id$f, hashMain$e);
2426
3695
  }
2427
3696
  function validateMain$e(v) {
2428
- return validate$f(v, id$f, hashMain$e, true);
3697
+ return validate$f(v, id$f, hashMain$e);
2429
3698
  }
2430
3699
 
2431
- var award = /*#__PURE__*/Object.freeze({
3700
+ var strongRef = /*#__PURE__*/Object.freeze({
2432
3701
  __proto__: null,
2433
3702
  isMain: isMain$e,
2434
- isRecord: isMain$e,
2435
- validateMain: validateMain$e,
2436
- validateRecord: validateMain$e
3703
+ validateMain: validateMain$e
2437
3704
  });
2438
3705
 
2439
- const is$typed$e = is$typed$g, validate$e = validate$g;
2440
- const id$e = 'app.certified.badge.definition';
3706
+ const is$typed$e = is$typed$n, validate$e = validate$n;
3707
+ const id$e = 'org.hyperboards.board';
2441
3708
  const hashMain$d = 'main';
2442
3709
  function isMain$d(v) {
2443
3710
  return is$typed$e(v, id$e, hashMain$d);
@@ -2445,17 +3712,35 @@ function isMain$d(v) {
2445
3712
  function validateMain$d(v) {
2446
3713
  return validate$e(v, id$e, hashMain$d, true);
2447
3714
  }
3715
+ const hashBoardConfig = 'boardConfig';
3716
+ function isBoardConfig(v) {
3717
+ return is$typed$e(v, id$e, hashBoardConfig);
3718
+ }
3719
+ function validateBoardConfig(v) {
3720
+ return validate$e(v, id$e, hashBoardConfig);
3721
+ }
3722
+ const hashContributorConfig = 'contributorConfig';
3723
+ function isContributorConfig(v) {
3724
+ return is$typed$e(v, id$e, hashContributorConfig);
3725
+ }
3726
+ function validateContributorConfig(v) {
3727
+ return validate$e(v, id$e, hashContributorConfig);
3728
+ }
2448
3729
 
2449
- var definition = /*#__PURE__*/Object.freeze({
3730
+ var board = /*#__PURE__*/Object.freeze({
2450
3731
  __proto__: null,
3732
+ isBoardConfig: isBoardConfig,
3733
+ isContributorConfig: isContributorConfig,
2451
3734
  isMain: isMain$d,
2452
3735
  isRecord: isMain$d,
3736
+ validateBoardConfig: validateBoardConfig,
3737
+ validateContributorConfig: validateContributorConfig,
2453
3738
  validateMain: validateMain$d,
2454
3739
  validateRecord: validateMain$d
2455
3740
  });
2456
3741
 
2457
- const is$typed$d = is$typed$g, validate$d = validate$g;
2458
- const id$d = 'app.certified.badge.response';
3742
+ const is$typed$d = is$typed$n, validate$d = validate$n;
3743
+ const id$d = 'org.hyperboards.displayProfile';
2459
3744
  const hashMain$c = 'main';
2460
3745
  function isMain$c(v) {
2461
3746
  return is$typed$d(v, id$d, hashMain$c);
@@ -2464,7 +3749,7 @@ function validateMain$c(v) {
2464
3749
  return validate$d(v, id$d, hashMain$c, true);
2465
3750
  }
2466
3751
 
2467
- var response = /*#__PURE__*/Object.freeze({
3752
+ var displayProfile = /*#__PURE__*/Object.freeze({
2468
3753
  __proto__: null,
2469
3754
  isMain: isMain$c,
2470
3755
  isRecord: isMain$c,
@@ -2472,12 +3757,8 @@ var response = /*#__PURE__*/Object.freeze({
2472
3757
  validateRecord: validateMain$c
2473
3758
  });
2474
3759
 
2475
- var defs$1 = /*#__PURE__*/Object.freeze({
2476
- __proto__: null
2477
- });
2478
-
2479
- const is$typed$c = is$typed$g, validate$c = validate$g;
2480
- const id$c = 'app.certified.location';
3760
+ const is$typed$c = is$typed$n, validate$c = validate$n;
3761
+ const id$c = 'org.hypercerts.claim.activity';
2481
3762
  const hashMain$b = 'main';
2482
3763
  function isMain$b(v) {
2483
3764
  return is$typed$c(v, id$c, hashMain$b);
@@ -2485,33 +3766,71 @@ function isMain$b(v) {
2485
3766
  function validateMain$b(v) {
2486
3767
  return validate$c(v, id$c, hashMain$b, true);
2487
3768
  }
3769
+ const hashContributor = 'contributor';
3770
+ function isContributor(v) {
3771
+ return is$typed$c(v, id$c, hashContributor);
3772
+ }
3773
+ function validateContributor(v) {
3774
+ return validate$c(v, id$c, hashContributor);
3775
+ }
3776
+ const hashContributorIdentity = 'contributorIdentity';
3777
+ function isContributorIdentity(v) {
3778
+ return is$typed$c(v, id$c, hashContributorIdentity);
3779
+ }
3780
+ function validateContributorIdentity(v) {
3781
+ return validate$c(v, id$c, hashContributorIdentity);
3782
+ }
3783
+ const hashContributorRole = 'contributorRole';
3784
+ function isContributorRole(v) {
3785
+ return is$typed$c(v, id$c, hashContributorRole);
3786
+ }
3787
+ function validateContributorRole(v) {
3788
+ return validate$c(v, id$c, hashContributorRole);
3789
+ }
3790
+ const hashWorkScopeString = 'workScopeString';
3791
+ function isWorkScopeString(v) {
3792
+ return is$typed$c(v, id$c, hashWorkScopeString);
3793
+ }
3794
+ function validateWorkScopeString(v) {
3795
+ return validate$c(v, id$c, hashWorkScopeString);
3796
+ }
2488
3797
 
2489
- var location = /*#__PURE__*/Object.freeze({
3798
+ var activity = /*#__PURE__*/Object.freeze({
2490
3799
  __proto__: null,
3800
+ isContributor: isContributor,
3801
+ isContributorIdentity: isContributorIdentity,
3802
+ isContributorRole: isContributorRole,
2491
3803
  isMain: isMain$b,
2492
3804
  isRecord: isMain$b,
3805
+ isWorkScopeString: isWorkScopeString,
3806
+ validateContributor: validateContributor,
3807
+ validateContributorIdentity: validateContributorIdentity,
3808
+ validateContributorRole: validateContributorRole,
2493
3809
  validateMain: validateMain$b,
2494
- validateRecord: validateMain$b
3810
+ validateRecord: validateMain$b,
3811
+ validateWorkScopeString: validateWorkScopeString
2495
3812
  });
2496
3813
 
2497
- const is$typed$b = is$typed$g, validate$b = validate$g;
2498
- const id$b = 'com.atproto.repo.strongRef';
3814
+ const is$typed$b = is$typed$n, validate$b = validate$n;
3815
+ const id$b = 'org.hypercerts.claim.contribution';
2499
3816
  const hashMain$a = 'main';
2500
3817
  function isMain$a(v) {
2501
3818
  return is$typed$b(v, id$b, hashMain$a);
2502
3819
  }
2503
3820
  function validateMain$a(v) {
2504
- return validate$b(v, id$b, hashMain$a);
3821
+ return validate$b(v, id$b, hashMain$a, true);
2505
3822
  }
2506
3823
 
2507
- var strongRef = /*#__PURE__*/Object.freeze({
3824
+ var contribution = /*#__PURE__*/Object.freeze({
2508
3825
  __proto__: null,
2509
3826
  isMain: isMain$a,
2510
- validateMain: validateMain$a
3827
+ isRecord: isMain$a,
3828
+ validateMain: validateMain$a,
3829
+ validateRecord: validateMain$a
2511
3830
  });
2512
3831
 
2513
- const is$typed$a = is$typed$g, validate$a = validate$g;
2514
- const id$a = 'org.hypercerts.claim.activity';
3832
+ const is$typed$a = is$typed$n, validate$a = validate$n;
3833
+ const id$a = 'org.hypercerts.claim.contributorInformation';
2515
3834
  const hashMain$9 = 'main';
2516
3835
  function isMain$9(v) {
2517
3836
  return is$typed$a(v, id$a, hashMain$9);
@@ -2519,26 +3838,17 @@ function isMain$9(v) {
2519
3838
  function validateMain$9(v) {
2520
3839
  return validate$a(v, id$a, hashMain$9, true);
2521
3840
  }
2522
- const hashContributor = 'contributor';
2523
- function isContributor(v) {
2524
- return is$typed$a(v, id$a, hashContributor);
2525
- }
2526
- function validateContributor(v) {
2527
- return validate$a(v, id$a, hashContributor);
2528
- }
2529
3841
 
2530
- var activity = /*#__PURE__*/Object.freeze({
3842
+ var contributorInformation = /*#__PURE__*/Object.freeze({
2531
3843
  __proto__: null,
2532
- isContributor: isContributor,
2533
3844
  isMain: isMain$9,
2534
3845
  isRecord: isMain$9,
2535
- validateContributor: validateContributor,
2536
3846
  validateMain: validateMain$9,
2537
3847
  validateRecord: validateMain$9
2538
3848
  });
2539
3849
 
2540
- const is$typed$9 = is$typed$g, validate$9 = validate$g;
2541
- const id$9 = 'org.hypercerts.claim.collection';
3850
+ const is$typed$9 = is$typed$n, validate$9 = validate$n;
3851
+ const id$9 = 'org.hypercerts.claim.rights';
2542
3852
  const hashMain$8 = 'main';
2543
3853
  function isMain$8(v) {
2544
3854
  return is$typed$9(v, id$9, hashMain$8);
@@ -2546,26 +3856,17 @@ function isMain$8(v) {
2546
3856
  function validateMain$8(v) {
2547
3857
  return validate$9(v, id$9, hashMain$8, true);
2548
3858
  }
2549
- const hashItem = 'item';
2550
- function isItem(v) {
2551
- return is$typed$9(v, id$9, hashItem);
2552
- }
2553
- function validateItem(v) {
2554
- return validate$9(v, id$9, hashItem);
2555
- }
2556
3859
 
2557
- var collection = /*#__PURE__*/Object.freeze({
3860
+ var rights = /*#__PURE__*/Object.freeze({
2558
3861
  __proto__: null,
2559
- isItem: isItem,
2560
3862
  isMain: isMain$8,
2561
3863
  isRecord: isMain$8,
2562
- validateItem: validateItem,
2563
3864
  validateMain: validateMain$8,
2564
3865
  validateRecord: validateMain$8
2565
3866
  });
2566
3867
 
2567
- const is$typed$8 = is$typed$g, validate$8 = validate$g;
2568
- const id$8 = 'org.hypercerts.claim.contributionDetails';
3868
+ const is$typed$8 = is$typed$n, validate$8 = validate$n;
3869
+ const id$8 = 'org.hypercerts.collection';
2569
3870
  const hashMain$7 = 'main';
2570
3871
  function isMain$7(v) {
2571
3872
  return is$typed$8(v, id$8, hashMain$7);
@@ -2573,17 +3874,26 @@ function isMain$7(v) {
2573
3874
  function validateMain$7(v) {
2574
3875
  return validate$8(v, id$8, hashMain$7, true);
2575
3876
  }
3877
+ const hashItem = 'item';
3878
+ function isItem(v) {
3879
+ return is$typed$8(v, id$8, hashItem);
3880
+ }
3881
+ function validateItem(v) {
3882
+ return validate$8(v, id$8, hashItem);
3883
+ }
2576
3884
 
2577
- var contributionDetails = /*#__PURE__*/Object.freeze({
3885
+ var collection = /*#__PURE__*/Object.freeze({
2578
3886
  __proto__: null,
3887
+ isItem: isItem,
2579
3888
  isMain: isMain$7,
2580
3889
  isRecord: isMain$7,
3890
+ validateItem: validateItem,
2581
3891
  validateMain: validateMain$7,
2582
3892
  validateRecord: validateMain$7
2583
3893
  });
2584
3894
 
2585
- const is$typed$7 = is$typed$g, validate$7 = validate$g;
2586
- const id$7 = 'org.hypercerts.claim.contributorInformation';
3895
+ const is$typed$7 = is$typed$n, validate$7 = validate$n;
3896
+ const id$7 = 'org.hypercerts.context.acknowledgement';
2587
3897
  const hashMain$6 = 'main';
2588
3898
  function isMain$6(v) {
2589
3899
  return is$typed$7(v, id$7, hashMain$6);
@@ -2592,7 +3902,7 @@ function validateMain$6(v) {
2592
3902
  return validate$7(v, id$7, hashMain$6, true);
2593
3903
  }
2594
3904
 
2595
- var contributorInformation = /*#__PURE__*/Object.freeze({
3905
+ var acknowledgement = /*#__PURE__*/Object.freeze({
2596
3906
  __proto__: null,
2597
3907
  isMain: isMain$6,
2598
3908
  isRecord: isMain$6,
@@ -2600,15 +3910,8 @@ var contributorInformation = /*#__PURE__*/Object.freeze({
2600
3910
  validateRecord: validateMain$6
2601
3911
  });
2602
3912
 
2603
- const is$typed$6 = is$typed$g, validate$6 = validate$g;
2604
- const id$6 = 'org.hypercerts.claim.evaluation';
2605
- const hashScore = 'score';
2606
- function isScore(v) {
2607
- return is$typed$6(v, id$6, hashScore);
2608
- }
2609
- function validateScore(v) {
2610
- return validate$6(v, id$6, hashScore);
2611
- }
3913
+ const is$typed$6 = is$typed$n, validate$6 = validate$n;
3914
+ const id$6 = 'org.hypercerts.context.attachment';
2612
3915
  const hashMain$5 = 'main';
2613
3916
  function isMain$5(v) {
2614
3917
  return is$typed$6(v, id$6, hashMain$5);
@@ -2617,18 +3920,16 @@ function validateMain$5(v) {
2617
3920
  return validate$6(v, id$6, hashMain$5, true);
2618
3921
  }
2619
3922
 
2620
- var evaluation = /*#__PURE__*/Object.freeze({
3923
+ var attachment = /*#__PURE__*/Object.freeze({
2621
3924
  __proto__: null,
2622
3925
  isMain: isMain$5,
2623
3926
  isRecord: isMain$5,
2624
- isScore: isScore,
2625
3927
  validateMain: validateMain$5,
2626
- validateRecord: validateMain$5,
2627
- validateScore: validateScore
3928
+ validateRecord: validateMain$5
2628
3929
  });
2629
3930
 
2630
- const is$typed$5 = is$typed$g, validate$5 = validate$g;
2631
- const id$5 = 'org.hypercerts.claim.evidence';
3931
+ const is$typed$5 = is$typed$n, validate$5 = validate$n;
3932
+ const id$5 = 'org.hypercerts.context.evaluation';
2632
3933
  const hashMain$4 = 'main';
2633
3934
  function isMain$4(v) {
2634
3935
  return is$typed$5(v, id$5, hashMain$4);
@@ -2636,17 +3937,26 @@ function isMain$4(v) {
2636
3937
  function validateMain$4(v) {
2637
3938
  return validate$5(v, id$5, hashMain$4, true);
2638
3939
  }
3940
+ const hashScore = 'score';
3941
+ function isScore(v) {
3942
+ return is$typed$5(v, id$5, hashScore);
3943
+ }
3944
+ function validateScore(v) {
3945
+ return validate$5(v, id$5, hashScore);
3946
+ }
2639
3947
 
2640
- var evidence = /*#__PURE__*/Object.freeze({
3948
+ var evaluation = /*#__PURE__*/Object.freeze({
2641
3949
  __proto__: null,
2642
3950
  isMain: isMain$4,
2643
3951
  isRecord: isMain$4,
3952
+ isScore: isScore,
2644
3953
  validateMain: validateMain$4,
2645
- validateRecord: validateMain$4
3954
+ validateRecord: validateMain$4,
3955
+ validateScore: validateScore
2646
3956
  });
2647
3957
 
2648
- const is$typed$4 = is$typed$g, validate$4 = validate$g;
2649
- const id$4 = 'org.hypercerts.claim.measurement';
3958
+ const is$typed$4 = is$typed$n, validate$4 = validate$n;
3959
+ const id$4 = 'org.hypercerts.context.measurement';
2650
3960
  const hashMain$3 = 'main';
2651
3961
  function isMain$3(v) {
2652
3962
  return is$typed$4(v, id$4, hashMain$3);
@@ -2663,88 +3973,49 @@ var measurement = /*#__PURE__*/Object.freeze({
2663
3973
  validateRecord: validateMain$3
2664
3974
  });
2665
3975
 
2666
- const is$typed$3 = is$typed$g, validate$3 = validate$g;
2667
- const id$3 = 'org.hypercerts.claim.rights';
2668
- const hashMain$2 = 'main';
2669
- function isMain$2(v) {
2670
- return is$typed$3(v, id$3, hashMain$2);
2671
- }
2672
- function validateMain$2(v) {
2673
- return validate$3(v, id$3, hashMain$2, true);
2674
- }
2675
-
2676
- var rights = /*#__PURE__*/Object.freeze({
2677
- __proto__: null,
2678
- isMain: isMain$2,
2679
- isRecord: isMain$2,
2680
- validateMain: validateMain$2,
2681
- validateRecord: validateMain$2
2682
- });
2683
-
2684
- const is$typed$2 = is$typed$g, validate$2 = validate$g;
2685
- const id$2 = 'org.hypercerts.defs';
3976
+ const is$typed$3 = is$typed$n, validate$3 = validate$n;
3977
+ const id$3 = 'org.hypercerts.defs';
2686
3978
  const hashUri = 'uri';
2687
3979
  function isUri(v) {
2688
- return is$typed$2(v, id$2, hashUri);
3980
+ return is$typed$3(v, id$3, hashUri);
2689
3981
  }
2690
3982
  function validateUri(v) {
2691
- return validate$2(v, id$2, hashUri);
3983
+ return validate$3(v, id$3, hashUri);
2692
3984
  }
2693
3985
  const hashSmallBlob = 'smallBlob';
2694
3986
  function isSmallBlob(v) {
2695
- return is$typed$2(v, id$2, hashSmallBlob);
3987
+ return is$typed$3(v, id$3, hashSmallBlob);
2696
3988
  }
2697
3989
  function validateSmallBlob(v) {
2698
- return validate$2(v, id$2, hashSmallBlob);
3990
+ return validate$3(v, id$3, hashSmallBlob);
2699
3991
  }
2700
3992
  const hashLargeBlob = 'largeBlob';
2701
3993
  function isLargeBlob(v) {
2702
- return is$typed$2(v, id$2, hashLargeBlob);
3994
+ return is$typed$3(v, id$3, hashLargeBlob);
2703
3995
  }
2704
3996
  function validateLargeBlob(v) {
2705
- return validate$2(v, id$2, hashLargeBlob);
3997
+ return validate$3(v, id$3, hashLargeBlob);
2706
3998
  }
2707
3999
  const hashSmallImage = 'smallImage';
2708
4000
  function isSmallImage(v) {
2709
- return is$typed$2(v, id$2, hashSmallImage);
4001
+ return is$typed$3(v, id$3, hashSmallImage);
2710
4002
  }
2711
4003
  function validateSmallImage(v) {
2712
- return validate$2(v, id$2, hashSmallImage);
4004
+ return validate$3(v, id$3, hashSmallImage);
4005
+ }
4006
+ const hashSmallVideo = 'smallVideo';
4007
+ function isSmallVideo(v) {
4008
+ return is$typed$3(v, id$3, hashSmallVideo);
4009
+ }
4010
+ function validateSmallVideo(v) {
4011
+ return validate$3(v, id$3, hashSmallVideo);
2713
4012
  }
2714
4013
  const hashLargeImage = 'largeImage';
2715
4014
  function isLargeImage(v) {
2716
- return is$typed$2(v, id$2, hashLargeImage);
4015
+ return is$typed$3(v, id$3, hashLargeImage);
2717
4016
  }
2718
4017
  function validateLargeImage(v) {
2719
- return validate$2(v, id$2, hashLargeImage);
2720
- }
2721
- const hashWorkScopeAll = 'workScopeAll';
2722
- function isWorkScopeAll(v) {
2723
- return is$typed$2(v, id$2, hashWorkScopeAll);
2724
- }
2725
- function validateWorkScopeAll(v) {
2726
- return validate$2(v, id$2, hashWorkScopeAll);
2727
- }
2728
- const hashWorkScopeAny = 'workScopeAny';
2729
- function isWorkScopeAny(v) {
2730
- return is$typed$2(v, id$2, hashWorkScopeAny);
2731
- }
2732
- function validateWorkScopeAny(v) {
2733
- return validate$2(v, id$2, hashWorkScopeAny);
2734
- }
2735
- const hashWorkScopeNot = 'workScopeNot';
2736
- function isWorkScopeNot(v) {
2737
- return is$typed$2(v, id$2, hashWorkScopeNot);
2738
- }
2739
- function validateWorkScopeNot(v) {
2740
- return validate$2(v, id$2, hashWorkScopeNot);
2741
- }
2742
- const hashWorkScopeAtom = 'workScopeAtom';
2743
- function isWorkScopeAtom(v) {
2744
- return is$typed$2(v, id$2, hashWorkScopeAtom);
2745
- }
2746
- function validateWorkScopeAtom(v) {
2747
- return validate$2(v, id$2, hashWorkScopeAtom);
4018
+ return validate$3(v, id$3, hashLargeImage);
2748
4019
  }
2749
4020
 
2750
4021
  var defs = /*#__PURE__*/Object.freeze({
@@ -2753,42 +4024,52 @@ var defs = /*#__PURE__*/Object.freeze({
2753
4024
  isLargeImage: isLargeImage,
2754
4025
  isSmallBlob: isSmallBlob,
2755
4026
  isSmallImage: isSmallImage,
4027
+ isSmallVideo: isSmallVideo,
2756
4028
  isUri: isUri,
2757
- isWorkScopeAll: isWorkScopeAll,
2758
- isWorkScopeAny: isWorkScopeAny,
2759
- isWorkScopeAtom: isWorkScopeAtom,
2760
- isWorkScopeNot: isWorkScopeNot,
2761
4029
  validateLargeBlob: validateLargeBlob,
2762
4030
  validateLargeImage: validateLargeImage,
2763
4031
  validateSmallBlob: validateSmallBlob,
2764
4032
  validateSmallImage: validateSmallImage,
2765
- validateUri: validateUri,
2766
- validateWorkScopeAll: validateWorkScopeAll,
2767
- validateWorkScopeAny: validateWorkScopeAny,
2768
- validateWorkScopeAtom: validateWorkScopeAtom,
2769
- validateWorkScopeNot: validateWorkScopeNot
4033
+ validateSmallVideo: validateSmallVideo,
4034
+ validateUri: validateUri
4035
+ });
4036
+
4037
+ const is$typed$2 = is$typed$n, validate$2 = validate$n;
4038
+ const id$2 = 'org.hypercerts.funding.receipt';
4039
+ const hashMain$2 = 'main';
4040
+ function isMain$2(v) {
4041
+ return is$typed$2(v, id$2, hashMain$2);
4042
+ }
4043
+ function validateMain$2(v) {
4044
+ return validate$2(v, id$2, hashMain$2, true);
4045
+ }
4046
+
4047
+ var receipt = /*#__PURE__*/Object.freeze({
4048
+ __proto__: null,
4049
+ isMain: isMain$2,
4050
+ isRecord: isMain$2,
4051
+ validateMain: validateMain$2,
4052
+ validateRecord: validateMain$2
2770
4053
  });
2771
4054
 
2772
- const is$typed$1 = is$typed$g, validate$1 = validate$g;
2773
- const id$1 = 'org.hypercerts.funding.receipt';
4055
+ const is$typed$1 = is$typed$n, validate$1 = validate$n;
4056
+ const id$1 = 'org.hypercerts.workscope.cel';
2774
4057
  const hashMain$1 = 'main';
2775
4058
  function isMain$1(v) {
2776
4059
  return is$typed$1(v, id$1, hashMain$1);
2777
4060
  }
2778
4061
  function validateMain$1(v) {
2779
- return validate$1(v, id$1, hashMain$1, true);
4062
+ return validate$1(v, id$1, hashMain$1);
2780
4063
  }
2781
4064
 
2782
- var receipt = /*#__PURE__*/Object.freeze({
4065
+ var cel = /*#__PURE__*/Object.freeze({
2783
4066
  __proto__: null,
2784
4067
  isMain: isMain$1,
2785
- isRecord: isMain$1,
2786
- validateMain: validateMain$1,
2787
- validateRecord: validateMain$1
4068
+ validateMain: validateMain$1
2788
4069
  });
2789
4070
 
2790
- const is$typed = is$typed$g, validate = validate$g;
2791
- const id = 'org.hypercerts.helper.workScopeTag';
4071
+ const is$typed = is$typed$n, validate = validate$n;
4072
+ const id = 'org.hypercerts.workscope.tag';
2792
4073
  const hashMain = 'main';
2793
4074
  function isMain(v) {
2794
4075
  return is$typed(v, id, hashMain);
@@ -2797,7 +4078,7 @@ function validateMain(v) {
2797
4078
  return validate(v, id, hashMain, true);
2798
4079
  }
2799
4080
 
2800
- var workScopeTag = /*#__PURE__*/Object.freeze({
4081
+ var tag = /*#__PURE__*/Object.freeze({
2801
4082
  __proto__: null,
2802
4083
  isMain: isMain,
2803
4084
  isRecord: isMain,
@@ -2811,7 +4092,7 @@ var workScopeTag = /*#__PURE__*/Object.freeze({
2811
4092
  * ⚠️ DO NOT EDIT THIS FILE MANUALLY ⚠️
2812
4093
  *
2813
4094
  * This file is automatically generated by scripts/generate-exports.js
2814
- * Generated: 2026-01-22T01:56:22.579Z
4095
+ * Generated: 2026-03-03T20:19:46.686Z
2815
4096
  *
2816
4097
  * To regenerate this file, run:
2817
4098
  * npm run gen-api
@@ -2828,23 +4109,29 @@ var workScopeTag = /*#__PURE__*/Object.freeze({
2828
4109
  * @packageDocumentation
2829
4110
  */
2830
4111
  // Individual NSID constants
4112
+ const ACTOR_ORGANIZATION_NSID = "app.certified.actor.organization";
4113
+ const ACTOR_PROFILE_NSID = "app.certified.actor.profile";
2831
4114
  const BADGE_AWARD_NSID = "app.certified.badge.award";
2832
4115
  const BADGE_DEFINITION_NSID = "app.certified.badge.definition";
2833
4116
  const BADGE_RESPONSE_NSID = "app.certified.badge.response";
2834
4117
  const CERTIFIED_DEFS_NSID = "app.certified.defs";
2835
4118
  const LOCATION_NSID = "app.certified.location";
2836
4119
  const STRONG_REF_NSID = "com.atproto.repo.strongRef";
4120
+ const HYPERBOARDS_BOARD_NSID = "org.hyperboards.board";
4121
+ const HYPERBOARDS_DISPLAY_PROFILE_NSID = "org.hyperboards.displayProfile";
2837
4122
  const ACTIVITY_NSID = "org.hypercerts.claim.activity";
2838
- const COLLECTION_NSID = "org.hypercerts.claim.collection";
2839
- const CONTRIBUTION_DETAILS_NSID = "org.hypercerts.claim.contributionDetails";
4123
+ const CONTRIBUTION_NSID = "org.hypercerts.claim.contribution";
2840
4124
  const CONTRIBUTOR_INFORMATION_NSID = "org.hypercerts.claim.contributorInformation";
2841
- const EVALUATION_NSID = "org.hypercerts.claim.evaluation";
2842
- const EVIDENCE_NSID = "org.hypercerts.claim.evidence";
2843
- const MEASUREMENT_NSID = "org.hypercerts.claim.measurement";
2844
4125
  const RIGHTS_NSID = "org.hypercerts.claim.rights";
4126
+ const HYPERCERTS_COLLECTION_NSID = "org.hypercerts.collection";
4127
+ const CONTEXT_ACKNOWLEDGEMENT_NSID = "org.hypercerts.context.acknowledgement";
4128
+ const CONTEXT_ATTACHMENT_NSID = "org.hypercerts.context.attachment";
4129
+ const CONTEXT_EVALUATION_NSID = "org.hypercerts.context.evaluation";
4130
+ const CONTEXT_MEASUREMENT_NSID = "org.hypercerts.context.measurement";
2845
4131
  const HYPERCERTS_DEFS_NSID = "org.hypercerts.defs";
2846
4132
  const FUNDING_RECEIPT_NSID = "org.hypercerts.funding.receipt";
2847
- const HELPER_WORK_SCOPE_TAG_NSID = "org.hypercerts.helper.workScopeTag";
4133
+ const WORKSCOPE_CEL_NSID = "org.hypercerts.workscope.cel";
4134
+ const WORKSCOPE_TAG_NSID = "org.hypercerts.workscope.tag";
2848
4135
  /**
2849
4136
  * Collection NSIDs organized by semantic record type.
2850
4137
  *
@@ -2852,86 +4139,110 @@ const HELPER_WORK_SCOPE_TAG_NSID = "org.hypercerts.helper.workScopeTag";
2852
4139
  * correct collection names.
2853
4140
  */
2854
4141
  const HYPERCERTS_NSIDS = {
4142
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_NSID,
4143
+ ACTOR_PROFILE: ACTOR_PROFILE_NSID,
2855
4144
  BADGE_AWARD: BADGE_AWARD_NSID,
2856
4145
  BADGE_DEFINITION: BADGE_DEFINITION_NSID,
2857
4146
  BADGE_RESPONSE: BADGE_RESPONSE_NSID,
2858
4147
  CERTIFIED_DEFS: CERTIFIED_DEFS_NSID,
2859
4148
  LOCATION: LOCATION_NSID,
2860
4149
  STRONG_REF: STRONG_REF_NSID,
4150
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_NSID,
4151
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_NSID,
2861
4152
  ACTIVITY: ACTIVITY_NSID,
2862
- COLLECTION: COLLECTION_NSID,
2863
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_NSID,
4153
+ CONTRIBUTION: CONTRIBUTION_NSID,
2864
4154
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_NSID,
2865
- EVALUATION: EVALUATION_NSID,
2866
- EVIDENCE: EVIDENCE_NSID,
2867
- MEASUREMENT: MEASUREMENT_NSID,
2868
4155
  RIGHTS: RIGHTS_NSID,
4156
+ HYPERCERTS_COLLECTION: HYPERCERTS_COLLECTION_NSID,
4157
+ CONTEXT_ACKNOWLEDGEMENT: CONTEXT_ACKNOWLEDGEMENT_NSID,
4158
+ CONTEXT_ATTACHMENT: CONTEXT_ATTACHMENT_NSID,
4159
+ CONTEXT_EVALUATION: CONTEXT_EVALUATION_NSID,
4160
+ CONTEXT_MEASUREMENT: CONTEXT_MEASUREMENT_NSID,
2869
4161
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_NSID,
2870
4162
  FUNDING_RECEIPT: FUNDING_RECEIPT_NSID,
2871
- HELPER_WORK_SCOPE_TAG: HELPER_WORK_SCOPE_TAG_NSID,
4163
+ WORKSCOPE_CEL: WORKSCOPE_CEL_NSID,
4164
+ WORKSCOPE_TAG: WORKSCOPE_TAG_NSID,
2872
4165
  };
2873
4166
  /**
2874
4167
  * Lexicon JSON objects organized by semantic record type.
2875
4168
  */
2876
4169
  const HYPERCERTS_LEXICON_JSON = {
4170
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_LEXICON_JSON,
4171
+ ACTOR_PROFILE: ACTOR_PROFILE_LEXICON_JSON,
2877
4172
  BADGE_AWARD: BADGE_AWARD_LEXICON_JSON,
2878
4173
  BADGE_DEFINITION: BADGE_DEFINITION_LEXICON_JSON,
2879
4174
  BADGE_RESPONSE: BADGE_RESPONSE_LEXICON_JSON,
2880
4175
  CERTIFIED_DEFS: CERTIFIED_DEFS_LEXICON_JSON,
2881
4176
  LOCATION: LOCATION_LEXICON_JSON,
2882
4177
  STRONG_REF: STRONG_REF_LEXICON_JSON,
4178
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_LEXICON_JSON,
4179
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_LEXICON_JSON,
2883
4180
  ACTIVITY: ACTIVITY_LEXICON_JSON,
2884
- COLLECTION: COLLECTION_LEXICON_JSON,
2885
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_LEXICON_JSON,
4181
+ CONTRIBUTION: CONTRIBUTION_LEXICON_JSON,
2886
4182
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_LEXICON_JSON,
2887
- EVALUATION: EVALUATION_LEXICON_JSON,
2888
- EVIDENCE: EVIDENCE_LEXICON_JSON,
2889
- MEASUREMENT: MEASUREMENT_LEXICON_JSON,
2890
4183
  RIGHTS: RIGHTS_LEXICON_JSON,
4184
+ HYPERCERTS_COLLECTION: HYPERCERTS_COLLECTION_LEXICON_JSON,
4185
+ CONTEXT_ACKNOWLEDGEMENT: CONTEXT_ACKNOWLEDGEMENT_LEXICON_JSON,
4186
+ CONTEXT_ATTACHMENT: CONTEXT_ATTACHMENT_LEXICON_JSON,
4187
+ CONTEXT_EVALUATION: CONTEXT_EVALUATION_LEXICON_JSON,
4188
+ CONTEXT_MEASUREMENT: CONTEXT_MEASUREMENT_LEXICON_JSON,
2891
4189
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_LEXICON_JSON,
2892
4190
  FUNDING_RECEIPT: FUNDING_RECEIPT_LEXICON_JSON,
2893
- HELPER_WORK_SCOPE_TAG: HELPER_WORK_SCOPE_TAG_LEXICON_JSON,
4191
+ WORKSCOPE_CEL: WORKSCOPE_CEL_LEXICON_JSON,
4192
+ WORKSCOPE_TAG: WORKSCOPE_TAG_LEXICON_JSON,
2894
4193
  };
2895
4194
  // Individual lexicon objects (from lexicons.get())
4195
+ const ACTOR_ORGANIZATION_LEXICON_DOC = lexicons.get(ACTOR_ORGANIZATION_NSID);
4196
+ const ACTOR_PROFILE_LEXICON_DOC = lexicons.get(ACTOR_PROFILE_NSID);
2896
4197
  const BADGE_AWARD_LEXICON_DOC = lexicons.get(BADGE_AWARD_NSID);
2897
4198
  const BADGE_DEFINITION_LEXICON_DOC = lexicons.get(BADGE_DEFINITION_NSID);
2898
4199
  const BADGE_RESPONSE_LEXICON_DOC = lexicons.get(BADGE_RESPONSE_NSID);
2899
4200
  const CERTIFIED_DEFS_LEXICON_DOC = lexicons.get(CERTIFIED_DEFS_NSID);
2900
4201
  const LOCATION_LEXICON_DOC = lexicons.get(LOCATION_NSID);
2901
4202
  const STRONG_REF_LEXICON_DOC = lexicons.get(STRONG_REF_NSID);
4203
+ const HYPERBOARDS_BOARD_LEXICON_DOC = lexicons.get(HYPERBOARDS_BOARD_NSID);
4204
+ const HYPERBOARDS_DISPLAY_PROFILE_LEXICON_DOC = lexicons.get(HYPERBOARDS_DISPLAY_PROFILE_NSID);
2902
4205
  const ACTIVITY_LEXICON_DOC = lexicons.get(ACTIVITY_NSID);
2903
- const COLLECTION_LEXICON_DOC = lexicons.get(COLLECTION_NSID);
2904
- const CONTRIBUTION_DETAILS_LEXICON_DOC = lexicons.get(CONTRIBUTION_DETAILS_NSID);
4206
+ const CONTRIBUTION_LEXICON_DOC = lexicons.get(CONTRIBUTION_NSID);
2905
4207
  const CONTRIBUTOR_INFORMATION_LEXICON_DOC = lexicons.get(CONTRIBUTOR_INFORMATION_NSID);
2906
- const EVALUATION_LEXICON_DOC = lexicons.get(EVALUATION_NSID);
2907
- const EVIDENCE_LEXICON_DOC = lexicons.get(EVIDENCE_NSID);
2908
- const MEASUREMENT_LEXICON_DOC = lexicons.get(MEASUREMENT_NSID);
2909
4208
  const RIGHTS_LEXICON_DOC = lexicons.get(RIGHTS_NSID);
4209
+ const HYPERCERTS_COLLECTION_LEXICON_DOC = lexicons.get(HYPERCERTS_COLLECTION_NSID);
4210
+ const CONTEXT_ACKNOWLEDGEMENT_LEXICON_DOC = lexicons.get(CONTEXT_ACKNOWLEDGEMENT_NSID);
4211
+ const CONTEXT_ATTACHMENT_LEXICON_DOC = lexicons.get(CONTEXT_ATTACHMENT_NSID);
4212
+ const CONTEXT_EVALUATION_LEXICON_DOC = lexicons.get(CONTEXT_EVALUATION_NSID);
4213
+ const CONTEXT_MEASUREMENT_LEXICON_DOC = lexicons.get(CONTEXT_MEASUREMENT_NSID);
2910
4214
  const HYPERCERTS_DEFS_LEXICON_DOC = lexicons.get(HYPERCERTS_DEFS_NSID);
2911
4215
  const FUNDING_RECEIPT_LEXICON_DOC = lexicons.get(FUNDING_RECEIPT_NSID);
2912
- const HELPER_WORK_SCOPE_TAG_LEXICON_DOC = lexicons.get(HELPER_WORK_SCOPE_TAG_NSID);
4216
+ const WORKSCOPE_CEL_LEXICON_DOC = lexicons.get(WORKSCOPE_CEL_NSID);
4217
+ const WORKSCOPE_TAG_LEXICON_DOC = lexicons.get(WORKSCOPE_TAG_NSID);
2913
4218
  /**
2914
4219
  * Lexicon document objects organized by semantic record type.
2915
4220
  */
2916
4221
  const HYPERCERTS_LEXICON_DOC = {
4222
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_LEXICON_DOC,
4223
+ ACTOR_PROFILE: ACTOR_PROFILE_LEXICON_DOC,
2917
4224
  BADGE_AWARD: BADGE_AWARD_LEXICON_DOC,
2918
4225
  BADGE_DEFINITION: BADGE_DEFINITION_LEXICON_DOC,
2919
4226
  BADGE_RESPONSE: BADGE_RESPONSE_LEXICON_DOC,
2920
4227
  CERTIFIED_DEFS: CERTIFIED_DEFS_LEXICON_DOC,
2921
4228
  LOCATION: LOCATION_LEXICON_DOC,
2922
4229
  STRONG_REF: STRONG_REF_LEXICON_DOC,
4230
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_LEXICON_DOC,
4231
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_LEXICON_DOC,
2923
4232
  ACTIVITY: ACTIVITY_LEXICON_DOC,
2924
- COLLECTION: COLLECTION_LEXICON_DOC,
2925
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_LEXICON_DOC,
4233
+ CONTRIBUTION: CONTRIBUTION_LEXICON_DOC,
2926
4234
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_LEXICON_DOC,
2927
- EVALUATION: EVALUATION_LEXICON_DOC,
2928
- EVIDENCE: EVIDENCE_LEXICON_DOC,
2929
- MEASUREMENT: MEASUREMENT_LEXICON_DOC,
2930
4235
  RIGHTS: RIGHTS_LEXICON_DOC,
4236
+ HYPERCERTS_COLLECTION: HYPERCERTS_COLLECTION_LEXICON_DOC,
4237
+ CONTEXT_ACKNOWLEDGEMENT: CONTEXT_ACKNOWLEDGEMENT_LEXICON_DOC,
4238
+ CONTEXT_ATTACHMENT: CONTEXT_ATTACHMENT_LEXICON_DOC,
4239
+ CONTEXT_EVALUATION: CONTEXT_EVALUATION_LEXICON_DOC,
4240
+ CONTEXT_MEASUREMENT: CONTEXT_MEASUREMENT_LEXICON_DOC,
2931
4241
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_LEXICON_DOC,
2932
4242
  FUNDING_RECEIPT: FUNDING_RECEIPT_LEXICON_DOC,
2933
- HELPER_WORK_SCOPE_TAG: HELPER_WORK_SCOPE_TAG_LEXICON_DOC,
4243
+ WORKSCOPE_CEL: WORKSCOPE_CEL_LEXICON_DOC,
4244
+ WORKSCOPE_TAG: WORKSCOPE_TAG_LEXICON_DOC,
2934
4245
  };
2935
4246
 
2936
- export { ACTIVITY_LEXICON_DOC, ACTIVITY_LEXICON_JSON, ACTIVITY_NSID, award as AppCertifiedBadgeAward, definition as AppCertifiedBadgeDefinition, response as AppCertifiedBadgeResponse, defs$1 as AppCertifiedDefs, location as AppCertifiedLocation, BADGE_AWARD_LEXICON_DOC, BADGE_AWARD_LEXICON_JSON, BADGE_AWARD_NSID, BADGE_DEFINITION_LEXICON_DOC, BADGE_DEFINITION_LEXICON_JSON, BADGE_DEFINITION_NSID, BADGE_RESPONSE_LEXICON_DOC, BADGE_RESPONSE_LEXICON_JSON, BADGE_RESPONSE_NSID, CERTIFIED_DEFS_LEXICON_DOC, CERTIFIED_DEFS_LEXICON_JSON, CERTIFIED_DEFS_NSID, COLLECTION_LEXICON_DOC, COLLECTION_LEXICON_JSON, COLLECTION_NSID, CONTRIBUTION_DETAILS_LEXICON_DOC, CONTRIBUTION_DETAILS_LEXICON_JSON, CONTRIBUTION_DETAILS_NSID, CONTRIBUTOR_INFORMATION_LEXICON_DOC, CONTRIBUTOR_INFORMATION_LEXICON_JSON, CONTRIBUTOR_INFORMATION_NSID, strongRef as ComAtprotoRepoStrongRef, EVALUATION_LEXICON_DOC, EVALUATION_LEXICON_JSON, EVALUATION_NSID, EVIDENCE_LEXICON_DOC, EVIDENCE_LEXICON_JSON, EVIDENCE_NSID, FUNDING_RECEIPT_LEXICON_DOC, FUNDING_RECEIPT_LEXICON_JSON, FUNDING_RECEIPT_NSID, HELPER_WORK_SCOPE_TAG_LEXICON_DOC, HELPER_WORK_SCOPE_TAG_LEXICON_JSON, HELPER_WORK_SCOPE_TAG_NSID, HYPERCERTS_DEFS_LEXICON_DOC, HYPERCERTS_DEFS_LEXICON_JSON, HYPERCERTS_DEFS_NSID, HYPERCERTS_LEXICON_DOC, HYPERCERTS_LEXICON_JSON, HYPERCERTS_NSIDS, ids as HYPERCERTS_NSIDS_BY_TYPE, schemas as HYPERCERTS_SCHEMAS, schemaDict as HYPERCERTS_SCHEMA_DICT, LOCATION_LEXICON_DOC, LOCATION_LEXICON_JSON, LOCATION_NSID, MEASUREMENT_LEXICON_DOC, MEASUREMENT_LEXICON_JSON, MEASUREMENT_NSID, activity as OrgHypercertsClaimActivity, collection as OrgHypercertsClaimCollection, contributionDetails as OrgHypercertsClaimContributionDetails, contributorInformation as OrgHypercertsClaimContributorInformation, evaluation as OrgHypercertsClaimEvaluation, evidence as OrgHypercertsClaimEvidence, measurement as OrgHypercertsClaimMeasurement, rights as OrgHypercertsClaimRights, defs as OrgHypercertsDefs, receipt as OrgHypercertsFundingReceipt, workScopeTag as OrgHypercertsHelperWorkScopeTag, RIGHTS_LEXICON_DOC, RIGHTS_LEXICON_JSON, RIGHTS_NSID, STRONG_REF_LEXICON_DOC, STRONG_REF_LEXICON_JSON, STRONG_REF_NSID, asPredicate, is$typed$g as is$typed, lexicons, maybe$typed, validate$g as validate };
4247
+ export { ACTIVITY_LEXICON_DOC, ACTIVITY_LEXICON_JSON, ACTIVITY_NSID, ACTOR_ORGANIZATION_LEXICON_DOC, ACTOR_ORGANIZATION_LEXICON_JSON, ACTOR_ORGANIZATION_NSID, ACTOR_PROFILE_LEXICON_DOC, ACTOR_PROFILE_LEXICON_JSON, ACTOR_PROFILE_NSID, organization as AppCertifiedActorOrganization, profile as AppCertifiedActorProfile, award as AppCertifiedBadgeAward, definition as AppCertifiedBadgeDefinition, response as AppCertifiedBadgeResponse, defs$1 as AppCertifiedDefs, location as AppCertifiedLocation, BADGE_AWARD_LEXICON_DOC, BADGE_AWARD_LEXICON_JSON, BADGE_AWARD_NSID, BADGE_DEFINITION_LEXICON_DOC, BADGE_DEFINITION_LEXICON_JSON, BADGE_DEFINITION_NSID, BADGE_RESPONSE_LEXICON_DOC, BADGE_RESPONSE_LEXICON_JSON, BADGE_RESPONSE_NSID, CERTIFIED_DEFS_LEXICON_DOC, CERTIFIED_DEFS_LEXICON_JSON, CERTIFIED_DEFS_NSID, CONTEXT_ACKNOWLEDGEMENT_LEXICON_DOC, CONTEXT_ACKNOWLEDGEMENT_LEXICON_JSON, CONTEXT_ACKNOWLEDGEMENT_NSID, CONTEXT_ATTACHMENT_LEXICON_DOC, CONTEXT_ATTACHMENT_LEXICON_JSON, CONTEXT_ATTACHMENT_NSID, CONTEXT_EVALUATION_LEXICON_DOC, CONTEXT_EVALUATION_LEXICON_JSON, CONTEXT_EVALUATION_NSID, CONTEXT_MEASUREMENT_LEXICON_DOC, CONTEXT_MEASUREMENT_LEXICON_JSON, CONTEXT_MEASUREMENT_NSID, CONTRIBUTION_LEXICON_DOC, CONTRIBUTION_LEXICON_JSON, CONTRIBUTION_NSID, CONTRIBUTOR_INFORMATION_LEXICON_DOC, CONTRIBUTOR_INFORMATION_LEXICON_JSON, CONTRIBUTOR_INFORMATION_NSID, strongRef as ComAtprotoRepoStrongRef, FUNDING_RECEIPT_LEXICON_DOC, FUNDING_RECEIPT_LEXICON_JSON, FUNDING_RECEIPT_NSID, HYPERBOARDS_BOARD_LEXICON_DOC, HYPERBOARDS_BOARD_LEXICON_JSON, HYPERBOARDS_BOARD_NSID, HYPERBOARDS_DISPLAY_PROFILE_LEXICON_DOC, HYPERBOARDS_DISPLAY_PROFILE_LEXICON_JSON, HYPERBOARDS_DISPLAY_PROFILE_NSID, HYPERCERTS_COLLECTION_LEXICON_DOC, HYPERCERTS_COLLECTION_LEXICON_JSON, HYPERCERTS_COLLECTION_NSID, HYPERCERTS_DEFS_LEXICON_DOC, HYPERCERTS_DEFS_LEXICON_JSON, HYPERCERTS_DEFS_NSID, HYPERCERTS_LEXICON_DOC, HYPERCERTS_LEXICON_JSON, HYPERCERTS_NSIDS, ids as HYPERCERTS_NSIDS_BY_TYPE, schemas as HYPERCERTS_SCHEMAS, schemaDict as HYPERCERTS_SCHEMA_DICT, LOCATION_LEXICON_DOC, LOCATION_LEXICON_JSON, LOCATION_NSID, board as OrgHyperboardsBoard, displayProfile as OrgHyperboardsDisplayProfile, activity as OrgHypercertsClaimActivity, contribution as OrgHypercertsClaimContribution, contributorInformation as OrgHypercertsClaimContributorInformation, rights as OrgHypercertsClaimRights, collection as OrgHypercertsCollection, acknowledgement as OrgHypercertsContextAcknowledgement, attachment as OrgHypercertsContextAttachment, evaluation as OrgHypercertsContextEvaluation, measurement as OrgHypercertsContextMeasurement, defs as OrgHypercertsDefs, receipt as OrgHypercertsFundingReceipt, cel as OrgHypercertsWorkscopeCel, tag as OrgHypercertsWorkscopeTag, RIGHTS_LEXICON_DOC, RIGHTS_LEXICON_JSON, RIGHTS_NSID, STRONG_REF_LEXICON_DOC, STRONG_REF_LEXICON_JSON, STRONG_REF_NSID, WORKSCOPE_CEL_LEXICON_DOC, WORKSCOPE_CEL_LEXICON_JSON, WORKSCOPE_CEL_NSID, WORKSCOPE_TAG_LEXICON_DOC, WORKSCOPE_TAG_LEXICON_JSON, WORKSCOPE_TAG_NSID, asPredicate, is$typed$n as is$typed, lexicons, maybe$typed, validate$n as validate };
2937
4248
  //# sourceMappingURL=index.mjs.map