@hypercerts-org/lexicon 0.10.0-beta.14 → 0.10.0-beta.16

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 (136) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/README.md +117 -12
  3. package/SCHEMAS.md +300 -158
  4. package/dist/exports.d.ts +604 -171
  5. package/dist/exports.d.ts.map +1 -1
  6. package/dist/generated/exports.d.ts +604 -171
  7. package/dist/generated/exports.d.ts.map +1 -1
  8. package/dist/generated/lexicons.d.ts +1256 -440
  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 +4 -1
  13. package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -1
  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/location.d.ts +4 -4
  19. package/dist/generated/types/app/certified/location.d.ts.map +1 -1
  20. package/dist/generated/types/org/hyperboards/board.d.ts +75 -0
  21. package/dist/generated/types/org/hyperboards/board.d.ts.map +1 -0
  22. package/dist/generated/types/org/hyperboards/displayProfile.d.ts +31 -0
  23. package/dist/generated/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  24. package/dist/generated/types/org/hypercerts/claim/activity.d.ts +8 -9
  25. package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  26. package/dist/generated/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  27. package/dist/generated/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  28. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  29. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  30. package/dist/generated/types/org/hypercerts/claim/rights.d.ts +3 -3
  31. package/dist/generated/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  32. package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts}/collection.d.ts +10 -10
  33. package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -0
  34. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  35. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  36. package/dist/generated/types/org/hypercerts/{claim → context}/attachment.d.ts +6 -8
  37. package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  38. package/dist/generated/types/org/hypercerts/{claim → context}/evaluation.d.ts +15 -15
  39. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  40. package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts/context}/measurement.d.ts +7 -6
  41. package/dist/generated/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  42. package/dist/generated/types/org/hypercerts/defs.d.ts +8 -0
  43. package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
  44. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +1 -1
  45. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  46. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts +20 -0
  47. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  48. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts +36 -0
  49. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  50. package/dist/index.cjs +1931 -805
  51. package/dist/index.cjs.map +1 -1
  52. package/dist/index.mjs +1883 -777
  53. package/dist/index.mjs.map +1 -1
  54. package/dist/lexicons.cjs +689 -240
  55. package/dist/lexicons.cjs.map +1 -1
  56. package/dist/lexicons.d.ts +1256 -440
  57. package/dist/lexicons.d.ts.map +1 -1
  58. package/dist/lexicons.mjs +689 -240
  59. package/dist/lexicons.mjs.map +1 -1
  60. package/dist/types/app/certified/actor/organization.d.ts +32 -0
  61. package/dist/types/app/certified/actor/organization.d.ts.map +1 -0
  62. package/dist/types/app/certified/actor/profile.d.ts +4 -1
  63. package/dist/types/app/certified/actor/profile.d.ts.map +1 -1
  64. package/dist/types/app/certified/badge/award.d.ts +2 -0
  65. package/dist/types/app/certified/badge/award.d.ts.map +1 -1
  66. package/dist/types/app/certified/badge/response.d.ts +1 -1
  67. package/dist/types/app/certified/badge/response.d.ts.map +1 -1
  68. package/dist/types/app/certified/location.d.ts +4 -4
  69. package/dist/types/app/certified/location.d.ts.map +1 -1
  70. package/dist/types/org/hyperboards/board.d.ts +75 -0
  71. package/dist/types/org/hyperboards/board.d.ts.map +1 -0
  72. package/dist/types/org/hyperboards/displayProfile.d.ts +31 -0
  73. package/dist/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  74. package/dist/types/org/hypercerts/claim/activity.d.ts +8 -9
  75. package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  76. package/dist/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  77. package/dist/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  78. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  79. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  80. package/dist/types/org/hypercerts/claim/rights.d.ts +3 -3
  81. package/dist/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  82. package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts}/collection.d.ts +10 -10
  83. package/dist/types/org/hypercerts/collection.d.ts.map +1 -0
  84. package/dist/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  85. package/dist/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  86. package/dist/types/org/hypercerts/{claim → context}/attachment.d.ts +6 -8
  87. package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  88. package/dist/types/org/hypercerts/{claim → context}/evaluation.d.ts +15 -15
  89. package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  90. package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts/context}/measurement.d.ts +7 -6
  91. package/dist/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  92. package/dist/types/org/hypercerts/defs.d.ts +8 -0
  93. package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
  94. package/dist/types/org/hypercerts/funding/receipt.d.ts +1 -1
  95. package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  96. package/dist/types/org/hypercerts/workscope/cel.d.ts +20 -0
  97. package/dist/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  98. package/dist/types/org/hypercerts/workscope/tag.d.ts +36 -0
  99. package/dist/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  100. package/lexicons/app/certified/actor/organization.json +70 -0
  101. package/lexicons/app/certified/actor/profile.json +13 -3
  102. package/lexicons/app/certified/badge/award.json +8 -1
  103. package/lexicons/app/certified/badge/definition.json +8 -3
  104. package/lexicons/app/certified/badge/response.json +3 -2
  105. package/lexicons/app/certified/location.json +13 -4
  106. package/lexicons/org/hyperboards/board.json +152 -0
  107. package/lexicons/org/hyperboards/displayProfile.json +64 -0
  108. package/lexicons/org/hypercerts/claim/activity.json +23 -29
  109. package/lexicons/org/hypercerts/claim/{contributionDetails.json → contribution.json} +4 -4
  110. package/lexicons/org/hypercerts/claim/contributorInformation.json +3 -2
  111. package/lexicons/org/hypercerts/claim/rights.json +5 -3
  112. package/lexicons/org/hypercerts/{claim/collection.json → collection.json} +9 -6
  113. package/lexicons/org/hypercerts/context/acknowledgement.json +42 -0
  114. package/lexicons/org/hypercerts/{claim → context}/attachment.json +6 -15
  115. package/lexicons/org/hypercerts/{claim → context}/evaluation.json +22 -22
  116. package/lexicons/org/hypercerts/{claim → context}/measurement.json +13 -9
  117. package/lexicons/org/hypercerts/defs.json +14 -1
  118. package/lexicons/org/hypercerts/funding/receipt.json +12 -6
  119. package/lexicons/org/hypercerts/workscope/cel.json +39 -0
  120. package/lexicons/org/hypercerts/workscope/tag.json +87 -0
  121. package/package.json +1 -1
  122. package/dist/generated/types/org/hypercerts/claim/attachment.d.ts.map +0 -1
  123. package/dist/generated/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  124. package/dist/generated/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  125. package/dist/generated/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  126. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  127. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  128. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  129. package/dist/types/org/hypercerts/claim/attachment.d.ts.map +0 -1
  130. package/dist/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  131. package/dist/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  132. package/dist/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  133. package/dist/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  134. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  135. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  136. 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$i(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,19 +37,91 @@ 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
+ },
40
110
  AppCertifiedActorProfile: {
41
111
  lexicon: 1,
42
112
  id: 'app.certified.actor.profile',
43
113
  defs: {
44
114
  main: {
45
115
  type: 'record',
46
- description: 'A declaration of a Hypercert account profile.',
116
+ description: 'A declaration of a Certified account profile.',
47
117
  key: 'literal:self',
48
118
  record: {
49
119
  type: 'object',
120
+ required: ['createdAt'],
50
121
  properties: {
51
122
  displayName: {
52
123
  type: 'string',
124
+ description: 'Display name for the account',
53
125
  maxGraphemes: 64,
54
126
  maxLength: 640,
55
127
  },
@@ -68,6 +140,7 @@ const schemaDict = {
68
140
  website: {
69
141
  type: 'string',
70
142
  format: 'uri',
143
+ description: 'Account website URL',
71
144
  },
72
145
  avatar: {
73
146
  type: 'union',
@@ -88,6 +161,7 @@ const schemaDict = {
88
161
  createdAt: {
89
162
  type: 'string',
90
163
  format: 'datetime',
164
+ description: 'Client-declared timestamp when this record was originally created',
91
165
  },
92
166
  },
93
167
  },
@@ -122,6 +196,13 @@ const schemaDict = {
122
196
  note: {
123
197
  type: 'string',
124
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,
125
206
  },
126
207
  createdAt: {
127
208
  type: 'string',
@@ -148,10 +229,12 @@ const schemaDict = {
148
229
  badgeType: {
149
230
  type: 'string',
150
231
  description: 'Category of the badge (e.g. endorsement, participation, affiliation).',
232
+ maxLength: 100,
151
233
  },
152
234
  title: {
153
235
  type: 'string',
154
236
  description: 'Human-readable title of the badge.',
237
+ maxLength: 256,
155
238
  },
156
239
  icon: {
157
240
  type: 'blob',
@@ -167,10 +250,13 @@ const schemaDict = {
167
250
  description: {
168
251
  type: 'string',
169
252
  description: 'Optional short statement describing what the badge represents.',
253
+ maxLength: 5000,
254
+ maxGraphemes: 500,
170
255
  },
171
256
  allowedIssuers: {
172
257
  type: 'array',
173
258
  description: 'Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.',
259
+ maxLength: 100,
174
260
  items: {
175
261
  type: 'ref',
176
262
  ref: 'lex:app.certified.defs#did',
@@ -205,12 +291,13 @@ const schemaDict = {
205
291
  },
206
292
  response: {
207
293
  type: 'string',
208
- enum: ['accepted', 'rejected'],
294
+ knownValues: ['accepted', 'rejected'],
209
295
  description: 'The recipient’s response for the badge (accepted or rejected).',
210
296
  },
211
297
  weight: {
212
298
  type: 'string',
213
299
  description: 'Optional relative weight for accepted badges, assigned by the recipient.',
300
+ maxLength: 50,
214
301
  },
215
302
  createdAt: {
216
303
  type: 'string',
@@ -273,8 +360,17 @@ const schemaDict = {
273
360
  },
274
361
  locationType: {
275
362
  type: 'string',
276
- description: 'An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)',
277
- 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
+ ],
278
374
  maxLength: 20,
279
375
  },
280
376
  location: {
@@ -288,13 +384,13 @@ const schemaDict = {
288
384
  },
289
385
  name: {
290
386
  type: 'string',
291
- description: 'Optional name for this location',
387
+ description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
292
388
  maxLength: 1000,
293
389
  maxGraphemes: 100,
294
390
  },
295
391
  description: {
296
392
  type: 'string',
297
- description: 'Optional description for this location',
393
+ description: 'Additional context about this location, such as its significance to the work or specific boundaries',
298
394
  maxLength: 2000,
299
395
  maxGraphemes: 500,
300
396
  },
@@ -342,6 +438,234 @@ const schemaDict = {
342
438
  },
343
439
  },
344
440
  },
441
+ OrgHyperboardsBoard: {
442
+ lexicon: 1,
443
+ id: 'org.hyperboards.board',
444
+ defs: {
445
+ main: {
446
+ type: 'record',
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',
449
+ record: {
450
+ type: 'object',
451
+ required: ['subject', 'createdAt'],
452
+ properties: {
453
+ subject: {
454
+ type: 'ref',
455
+ ref: 'lex:com.atproto.repo.strongRef',
456
+ description: 'Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes.',
457
+ },
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: {
464
+ type: 'array',
465
+ description: 'Per-contributor configuration entries for this board.',
466
+ maxLength: 1000,
467
+ items: {
468
+ type: 'ref',
469
+ ref: 'lex:org.hyperboards.board#contributorConfig',
470
+ },
471
+ },
472
+ createdAt: {
473
+ type: 'string',
474
+ format: 'datetime',
475
+ description: 'Client-declared timestamp when this record was originally created.',
476
+ },
477
+ },
478
+ },
479
+ },
480
+ boardConfig: {
481
+ type: 'object',
482
+ description: "Visual configuration for a hyperboard's background, colors, and layout.",
483
+ properties: {
484
+ backgroundType: {
485
+ type: 'string',
486
+ description: 'Type of background content.',
487
+ knownValues: ['image', 'iframe'],
488
+ maxLength: 10,
489
+ },
490
+ backgroundImage: {
491
+ type: 'union',
492
+ refs: [
493
+ 'lex:org.hypercerts.defs#uri',
494
+ 'lex:org.hypercerts.defs#smallImage',
495
+ ],
496
+ description: 'Background image as a URI or image blob.',
497
+ },
498
+ backgroundIframeUrl: {
499
+ type: 'string',
500
+ format: 'uri',
501
+ description: 'URI of the background iframe.',
502
+ maxLength: 2048,
503
+ },
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: {
548
+ type: 'union',
549
+ refs: [
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',
586
+ ],
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,
600
+ },
601
+ },
602
+ },
603
+ },
604
+ },
605
+ OrgHyperboardsDisplayProfile: {
606
+ lexicon: 1,
607
+ id: 'org.hyperboards.displayProfile',
608
+ defs: {
609
+ main: {
610
+ type: 'record',
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',
613
+ record: {
614
+ type: 'object',
615
+ required: ['createdAt'],
616
+ properties: {
617
+ displayName: {
618
+ type: 'string',
619
+ description: 'Display name override for this user on hyperboards.',
620
+ maxLength: 640,
621
+ maxGraphemes: 64,
622
+ },
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
+ },
345
669
  OrgHypercertsClaimActivity: {
346
670
  lexicon: 1,
347
671
  id: 'org.hypercerts.claim.activity',
@@ -356,7 +680,7 @@ const schemaDict = {
356
680
  properties: {
357
681
  title: {
358
682
  type: 'string',
359
- description: 'Title of the hypercert.',
683
+ description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
360
684
  maxLength: 256,
361
685
  },
362
686
  shortDescription: {
@@ -374,18 +698,9 @@ const schemaDict = {
374
698
  },
375
699
  },
376
700
  description: {
377
- type: 'string',
378
- description: 'Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.',
379
- maxLength: 30000,
380
- maxGraphemes: 3000,
381
- },
382
- descriptionFacets: {
383
- type: 'array',
384
- description: 'Rich text annotations for `description` (mentions, URLs, hashtags, etc).',
385
- items: {
386
- type: 'ref',
387
- ref: 'lex:app.bsky.richtext.facet',
388
- },
701
+ type: 'ref',
702
+ ref: 'lex:pub.leaflet.pages.linearDocument#main',
703
+ description: 'Rich-text description, represented as a Leaflet linear document.',
389
704
  },
390
705
  image: {
391
706
  type: 'union',
@@ -395,13 +710,22 @@ const schemaDict = {
395
710
  ],
396
711
  description: 'The hypercert visual representation as a URI or image blob.',
397
712
  },
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
+ },
398
722
  workScope: {
399
723
  type: 'union',
400
724
  refs: [
401
- 'lex:com.atproto.repo.strongRef',
725
+ 'lex:org.hypercerts.workscope.cel',
402
726
  'lex:org.hypercerts.claim.activity#workScopeString',
403
727
  ],
404
- description: 'Work scope definition. Either a strongRef to a work-scope logic record (structured, nested logic), or a free-form string for simple or legacy scopes. The work scope record should conform to the org.hypercerts.helper.workScopeTag lexicon.',
728
+ description: 'Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.',
405
729
  },
406
730
  startDate: {
407
731
  type: 'string',
@@ -413,12 +737,13 @@ const schemaDict = {
413
737
  format: 'datetime',
414
738
  description: 'When the work ended',
415
739
  },
416
- contributors: {
740
+ locations: {
417
741
  type: 'array',
418
- description: 'An array of contributor objects, each containing contributor information, weight, and contribution details.',
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,
419
744
  items: {
420
745
  type: 'ref',
421
- ref: 'lex:org.hypercerts.claim.activity#contributor',
746
+ ref: 'lex:com.atproto.repo.strongRef',
422
747
  },
423
748
  },
424
749
  rights: {
@@ -426,14 +751,6 @@ const schemaDict = {
426
751
  ref: 'lex:com.atproto.repo.strongRef',
427
752
  description: 'A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.',
428
753
  },
429
- locations: {
430
- type: 'array',
431
- description: 'An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.',
432
- items: {
433
- type: 'ref',
434
- ref: 'lex:com.atproto.repo.strongRef',
435
- },
436
- },
437
754
  createdAt: {
438
755
  type: 'string',
439
756
  format: 'datetime',
@@ -452,11 +769,12 @@ const schemaDict = {
452
769
  'lex:org.hypercerts.claim.activity#contributorIdentity',
453
770
  'lex:com.atproto.repo.strongRef',
454
771
  ],
455
- description: 'Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record.',
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.',
456
773
  },
457
774
  contributionWeight: {
458
775
  type: 'string',
459
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,
460
778
  },
461
779
  contributionDetails: {
462
780
  type: 'union',
@@ -464,7 +782,7 @@ const schemaDict = {
464
782
  'lex:org.hypercerts.claim.activity#contributorRole',
465
783
  'lex:com.atproto.repo.strongRef',
466
784
  ],
467
- description: 'Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record.',
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.',
468
786
  },
469
787
  },
470
788
  },
@@ -509,81 +827,78 @@ const schemaDict = {
509
827
  },
510
828
  },
511
829
  },
512
- OrgHypercertsClaimAttachment: {
830
+ OrgHypercertsClaimContribution: {
513
831
  lexicon: 1,
514
- id: 'org.hypercerts.claim.attachment',
832
+ id: 'org.hypercerts.claim.contribution',
515
833
  defs: {
516
834
  main: {
517
835
  type: 'record',
518
- description: 'An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).',
836
+ description: 'Details about a specific contribution including role, description, and timeframe.',
519
837
  key: 'tid',
520
838
  record: {
521
839
  type: 'object',
522
- required: ['title', 'content', 'createdAt'],
840
+ required: ['createdAt'],
523
841
  properties: {
524
- subjects: {
525
- type: 'array',
526
- 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.',
527
- items: {
528
- type: 'ref',
529
- ref: 'lex:com.atproto.repo.strongRef',
530
- },
842
+ role: {
843
+ type: 'string',
844
+ description: 'Role or title of the contributor.',
531
845
  maxLength: 100,
532
846
  },
533
- contentType: {
847
+ contributionDescription: {
534
848
  type: 'string',
535
- maxLength: 64,
536
- description: 'The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.',
849
+ description: 'Description of what the contribution concretely involved.',
850
+ maxLength: 10000,
851
+ maxGraphemes: 1000,
537
852
  },
538
- content: {
539
- type: 'array',
540
- description: 'The files, documents, or external references included in this attachment record.',
541
- items: {
542
- type: 'union',
543
- refs: [
544
- 'lex:org.hypercerts.defs#uri',
545
- 'lex:org.hypercerts.defs#smallBlob',
546
- ],
547
- },
548
- maxLength: 100,
549
- },
550
- title: {
853
+ startDate: {
551
854
  type: 'string',
552
- maxLength: 256,
553
- description: 'Title of this attachment.',
855
+ format: 'datetime',
856
+ description: "When this contribution started. Should fall within the parent hypercert's timeframe.",
554
857
  },
555
- shortDescription: {
858
+ endDate: {
556
859
  type: 'string',
557
- description: 'Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.',
558
- maxLength: 3000,
559
- maxGraphemes: 300,
860
+ format: 'datetime',
861
+ description: "When this contribution finished. Should fall within the parent hypercert's timeframe.",
560
862
  },
561
- shortDescriptionFacets: {
562
- type: 'array',
563
- description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
564
- items: {
565
- type: 'ref',
566
- ref: 'lex:app.bsky.richtext.facet',
567
- },
863
+ createdAt: {
864
+ type: 'string',
865
+ format: 'datetime',
866
+ description: 'Client-declared timestamp when this record was originally created.',
568
867
  },
569
- description: {
868
+ },
869
+ },
870
+ },
871
+ },
872
+ },
873
+ OrgHypercertsClaimContributorInformation: {
874
+ lexicon: 1,
875
+ id: 'org.hypercerts.claim.contributorInformation',
876
+ defs: {
877
+ main: {
878
+ type: 'record',
879
+ description: 'Contributor information including identifier, display name, and image.',
880
+ key: 'tid',
881
+ record: {
882
+ type: 'object',
883
+ required: ['createdAt'],
884
+ properties: {
885
+ identifier: {
570
886
  type: 'string',
571
- description: 'Optional longer description of this attachment, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.',
572
- maxLength: 30000,
573
- maxGraphemes: 3000,
887
+ description: 'DID (did:plc:...) or URI to a social profile of the contributor.',
888
+ maxLength: 2048,
574
889
  },
575
- descriptionFacets: {
576
- type: 'array',
577
- description: 'Rich text annotations for `description` (mentions, URLs, hashtags, etc).',
578
- items: {
579
- type: 'ref',
580
- ref: 'lex:app.bsky.richtext.facet',
581
- },
890
+ displayName: {
891
+ type: 'string',
892
+ description: 'Human-readable name for the contributor as it should appear in UI.',
893
+ maxLength: 100,
582
894
  },
583
- location: {
584
- type: 'ref',
585
- ref: 'lex:com.atproto.repo.strongRef',
586
- 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.",
895
+ image: {
896
+ type: 'union',
897
+ refs: [
898
+ 'lex:org.hypercerts.defs#uri',
899
+ 'lex:org.hypercerts.defs#smallImage',
900
+ ],
901
+ description: 'The contributor visual representation as a URI or image blob.',
587
902
  },
588
903
  createdAt: {
589
904
  type: 'string',
@@ -595,9 +910,60 @@ const schemaDict = {
595
910
  },
596
911
  },
597
912
  },
598
- OrgHypercertsClaimCollection: {
913
+ OrgHypercertsClaimRights: {
914
+ lexicon: 1,
915
+ id: 'org.hypercerts.claim.rights',
916
+ defs: {
917
+ main: {
918
+ type: 'record',
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.',
920
+ key: 'tid',
921
+ record: {
922
+ type: 'object',
923
+ required: [
924
+ 'rightsName',
925
+ 'rightsType',
926
+ 'rightsDescription',
927
+ 'createdAt',
928
+ ],
929
+ properties: {
930
+ rightsName: {
931
+ type: 'string',
932
+ description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
933
+ maxLength: 100,
934
+ },
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,
939
+ },
940
+ rightsDescription: {
941
+ type: 'string',
942
+ description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
943
+ maxLength: 10000,
944
+ maxGraphemes: 1000,
945
+ },
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.',
953
+ },
954
+ createdAt: {
955
+ type: 'string',
956
+ format: 'datetime',
957
+ description: 'Client-declared timestamp when this record was originally created',
958
+ },
959
+ },
960
+ },
961
+ },
962
+ },
963
+ },
964
+ OrgHypercertsCollection: {
599
965
  lexicon: 1,
600
- id: 'org.hypercerts.claim.collection',
966
+ id: 'org.hypercerts.collection',
601
967
  defs: {
602
968
  main: {
603
969
  type: 'record',
@@ -605,15 +971,16 @@ const schemaDict = {
605
971
  key: 'tid',
606
972
  record: {
607
973
  type: 'object',
608
- required: ['title', 'items', 'createdAt'],
974
+ required: ['title', 'createdAt'],
609
975
  properties: {
610
976
  type: {
611
977
  type: 'string',
612
978
  description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
979
+ maxLength: 64,
613
980
  },
614
981
  title: {
615
982
  type: 'string',
616
- description: 'The title of this collection',
983
+ description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
617
984
  maxLength: 800,
618
985
  maxGraphemes: 80,
619
986
  },
@@ -647,9 +1014,10 @@ const schemaDict = {
647
1014
  items: {
648
1015
  type: 'array',
649
1016
  description: 'Array of items in this collection with optional weights.',
1017
+ maxLength: 1000,
650
1018
  items: {
651
1019
  type: 'ref',
652
- ref: 'lex:org.hypercerts.claim.collection#item',
1020
+ ref: 'lex:org.hypercerts.collection#item',
653
1021
  },
654
1022
  },
655
1023
  location: {
@@ -672,48 +1040,51 @@ const schemaDict = {
672
1040
  itemIdentifier: {
673
1041
  type: 'ref',
674
1042
  ref: 'lex:com.atproto.repo.strongRef',
675
- 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).',
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).',
676
1044
  },
677
1045
  itemWeight: {
678
1046
  type: 'string',
679
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,
680
1049
  },
681
1050
  },
682
1051
  },
683
1052
  },
684
1053
  },
685
- OrgHypercertsClaimContributionDetails: {
1054
+ OrgHypercertsContextAcknowledgement: {
686
1055
  lexicon: 1,
687
- id: 'org.hypercerts.claim.contributionDetails',
1056
+ id: 'org.hypercerts.context.acknowledgement',
688
1057
  defs: {
689
1058
  main: {
690
1059
  type: 'record',
691
- description: 'Details about a specific contribution including role, description, and timeframe.',
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.",
692
1061
  key: 'tid',
693
1062
  record: {
694
1063
  type: 'object',
695
- required: ['createdAt'],
1064
+ required: ['subject', 'acknowledged', 'createdAt'],
696
1065
  properties: {
697
- role: {
698
- type: 'string',
699
- description: 'Role or title of the contributor.',
700
- maxLength: 100,
1066
+ subject: {
1067
+ type: 'ref',
1068
+ ref: 'lex:com.atproto.repo.strongRef',
1069
+ description: 'The record being acknowledged (e.g. an activity, a contributor information record, an evaluation).',
701
1070
  },
702
- contributionDescription: {
703
- type: 'string',
704
- description: 'What the contribution concretely was.',
705
- maxLength: 10000,
706
- maxGraphemes: 1000,
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.',
707
1078
  },
708
- startDate: {
709
- type: 'string',
710
- format: 'datetime',
711
- description: 'When this contribution started. This should be a subset of the hypercert timeframe.',
1079
+ acknowledged: {
1080
+ type: 'boolean',
1081
+ description: 'Whether the relationship is acknowledged (true) or rejected (false).',
712
1082
  },
713
- endDate: {
1083
+ comment: {
714
1084
  type: 'string',
715
- format: 'datetime',
716
- description: 'When this contribution finished. This should be a subset of the hypercert timeframe.',
1085
+ description: 'Optional plain-text comment providing additional context or reasoning.',
1086
+ maxLength: 10000,
1087
+ maxGraphemes: 1000,
717
1088
  },
718
1089
  createdAt: {
719
1090
  type: 'string',
@@ -725,34 +1096,72 @@ const schemaDict = {
725
1096
  },
726
1097
  },
727
1098
  },
728
- OrgHypercertsClaimContributorInformation: {
1099
+ OrgHypercertsContextAttachment: {
729
1100
  lexicon: 1,
730
- id: 'org.hypercerts.claim.contributorInformation',
1101
+ id: 'org.hypercerts.context.attachment',
731
1102
  defs: {
732
1103
  main: {
733
1104
  type: 'record',
734
- description: 'Contributor information including identifier, display name, and image.',
1105
+ description: 'An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).',
735
1106
  key: 'tid',
736
1107
  record: {
737
1108
  type: 'object',
738
- required: ['createdAt'],
1109
+ required: ['title', 'createdAt'],
739
1110
  properties: {
740
- identifier: {
741
- type: 'string',
742
- description: 'DID or a URI to a social profile of the contributor.',
1111
+ subjects: {
1112
+ type: 'array',
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.',
1114
+ items: {
1115
+ type: 'ref',
1116
+ ref: 'lex:com.atproto.repo.strongRef',
1117
+ },
1118
+ maxLength: 100,
743
1119
  },
744
- displayName: {
1120
+ contentType: {
745
1121
  type: 'string',
746
- description: 'Display name of the contributor.',
1122
+ maxLength: 64,
1123
+ description: 'The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.',
1124
+ },
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
+ },
747
1135
  maxLength: 100,
748
1136
  },
749
- image: {
750
- type: 'union',
751
- refs: [
752
- 'lex:org.hypercerts.defs#uri',
753
- 'lex:org.hypercerts.defs#smallImage',
754
- ],
755
- description: 'The contributor visual representation as a URI or image blob.',
1137
+ title: {
1138
+ type: 'string',
1139
+ maxLength: 256,
1140
+ description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')",
1141
+ },
1142
+ shortDescription: {
1143
+ type: 'string',
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,
1147
+ },
1148
+ shortDescriptionFacets: {
1149
+ type: 'array',
1150
+ description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
1151
+ items: {
1152
+ type: 'ref',
1153
+ ref: 'lex:app.bsky.richtext.facet',
1154
+ },
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.',
1160
+ },
1161
+ location: {
1162
+ type: 'ref',
1163
+ ref: 'lex:com.atproto.repo.strongRef',
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.",
756
1165
  },
757
1166
  createdAt: {
758
1167
  type: 'string',
@@ -764,29 +1173,10 @@ const schemaDict = {
764
1173
  },
765
1174
  },
766
1175
  },
767
- OrgHypercertsClaimEvaluation: {
1176
+ OrgHypercertsContextEvaluation: {
768
1177
  lexicon: 1,
769
- id: 'org.hypercerts.claim.evaluation',
1178
+ id: 'org.hypercerts.context.evaluation',
770
1179
  defs: {
771
- score: {
772
- type: 'object',
773
- description: 'Overall score for an evaluation on a numeric scale.',
774
- required: ['min', 'max', 'value'],
775
- properties: {
776
- min: {
777
- type: 'integer',
778
- description: 'Minimum value of the scale, e.g. 0 or 1.',
779
- },
780
- max: {
781
- type: 'integer',
782
- description: 'Maximum value of the scale, e.g. 5 or 10.',
783
- },
784
- value: {
785
- type: 'integer',
786
- description: 'Score within the inclusive range [min, max].',
787
- },
788
- },
789
- },
790
1180
  main: {
791
1181
  type: 'record',
792
1182
  description: 'An evaluation of a hypercert record (e.g. an activity and its impact).',
@@ -798,7 +1188,7 @@ const schemaDict = {
798
1188
  subject: {
799
1189
  type: 'ref',
800
1190
  ref: 'lex:com.atproto.repo.strongRef',
801
- description: 'A strong reference to what is being evaluated. (e.g activity, measurement, contribution, etc.)',
1191
+ description: 'A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)',
802
1192
  },
803
1193
  evaluators: {
804
1194
  type: 'array',
@@ -823,7 +1213,7 @@ const schemaDict = {
823
1213
  },
824
1214
  measurements: {
825
1215
  type: 'array',
826
- description: 'Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.claim.measurement',
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',
827
1217
  items: {
828
1218
  type: 'ref',
829
1219
  ref: 'lex:com.atproto.repo.strongRef',
@@ -838,7 +1228,7 @@ const schemaDict = {
838
1228
  },
839
1229
  score: {
840
1230
  type: 'ref',
841
- ref: 'lex:org.hypercerts.claim.evaluation#score',
1231
+ ref: 'lex:org.hypercerts.context.evaluation#score',
842
1232
  description: 'Optional overall score for this evaluation on a numeric scale.',
843
1233
  },
844
1234
  location: {
@@ -854,24 +1244,47 @@ const schemaDict = {
854
1244
  },
855
1245
  },
856
1246
  },
1247
+ score: {
1248
+ type: 'object',
1249
+ description: 'Overall score for an evaluation on a numeric scale.',
1250
+ required: ['min', 'max', 'value'],
1251
+ properties: {
1252
+ min: {
1253
+ type: 'integer',
1254
+ description: 'Minimum value of the scale, e.g. 0 or 1.',
1255
+ },
1256
+ max: {
1257
+ type: 'integer',
1258
+ description: 'Maximum value of the scale, e.g. 5 or 10.',
1259
+ },
1260
+ value: {
1261
+ type: 'integer',
1262
+ description: 'Score within the inclusive range [min, max].',
1263
+ },
1264
+ },
1265
+ },
857
1266
  },
858
1267
  },
859
- OrgHypercertsClaimMeasurement: {
1268
+ OrgHypercertsContextMeasurement: {
860
1269
  lexicon: 1,
861
- id: 'org.hypercerts.claim.measurement',
1270
+ id: 'org.hypercerts.context.measurement',
862
1271
  defs: {
863
1272
  main: {
864
1273
  type: 'record',
865
- description: 'Measurement data related to a hypercert record (e.g. an activity and its impact).',
1274
+ description: 'Measurement data related to one or more records (e.g. activities, projects, etc.).',
866
1275
  key: 'tid',
867
1276
  record: {
868
1277
  type: 'object',
869
1278
  required: ['metric', 'unit', 'value', 'createdAt'],
870
1279
  properties: {
871
- subject: {
872
- type: 'ref',
873
- ref: 'lex:com.atproto.repo.strongRef',
874
- description: 'A strong reference to the record this measurement refers to (e.g. an activity, project, or claim).',
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,
875
1288
  },
876
1289
  metric: {
877
1290
  type: 'string',
@@ -885,7 +1298,7 @@ const schemaDict = {
885
1298
  },
886
1299
  value: {
887
1300
  type: 'string',
888
- description: 'The measured numeric value.',
1301
+ description: "The measured value as a numeric string (e.g. '1234.56')",
889
1302
  maxLength: 500,
890
1303
  },
891
1304
  startDate: {
@@ -896,7 +1309,7 @@ const schemaDict = {
896
1309
  endDate: {
897
1310
  type: 'string',
898
1311
  format: 'datetime',
899
- description: 'The end date and time when the measurement ended. If it was a one time measurement, the endDate should be equal to the startDate.',
1312
+ description: 'The end date and time when the measurement ended. For one-time measurements, this should equal the start date.',
900
1313
  },
901
1314
  locations: {
902
1315
  type: 'array',
@@ -928,7 +1341,7 @@ const schemaDict = {
928
1341
  },
929
1342
  measurers: {
930
1343
  type: 'array',
931
- description: 'DIDs of the entity (or entities) that measured this data',
1344
+ description: 'DIDs of the entities that performed this measurement',
932
1345
  items: {
933
1346
  type: 'ref',
934
1347
  ref: 'lex:app.certified.defs#did',
@@ -959,58 +1372,10 @@ const schemaDict = {
959
1372
  },
960
1373
  },
961
1374
  },
962
- OrgHypercertsClaimRights: {
1375
+ OrgHypercertsDefs: {
963
1376
  lexicon: 1,
964
- id: 'org.hypercerts.claim.rights',
965
- defs: {
966
- main: {
967
- type: 'record',
968
- 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.',
969
- key: 'tid',
970
- record: {
971
- type: 'object',
972
- required: [
973
- 'rightsName',
974
- 'rightsType',
975
- 'rightsDescription',
976
- 'createdAt',
977
- ],
978
- properties: {
979
- rightsName: {
980
- type: 'string',
981
- description: 'Full name of the rights',
982
- maxLength: 100,
983
- },
984
- rightsType: {
985
- type: 'string',
986
- description: 'Short rights identifier for easier search',
987
- maxLength: 10,
988
- },
989
- rightsDescription: {
990
- type: 'string',
991
- description: 'Description of the rights of this hypercert',
992
- },
993
- attachment: {
994
- type: 'union',
995
- refs: [
996
- 'lex:org.hypercerts.defs#uri',
997
- 'lex:org.hypercerts.defs#smallBlob',
998
- ],
999
- description: 'An attachment to define the rights further, e.g. a legal document.',
1000
- },
1001
- createdAt: {
1002
- type: 'string',
1003
- format: 'datetime',
1004
- description: 'Client-declared timestamp when this record was originally created',
1005
- },
1006
- },
1007
- },
1008
- },
1009
- },
1010
- },
1011
- OrgHypercertsDefs: {
1012
- lexicon: 1,
1013
- id: 'org.hypercerts.defs',
1377
+ id: 'org.hypercerts.defs',
1378
+ description: 'Common type definitions used across all Hypercerts protocols.',
1014
1379
  defs: {
1015
1380
  uri: {
1016
1381
  type: 'object',
@@ -1020,7 +1385,6 @@ const schemaDict = {
1020
1385
  uri: {
1021
1386
  type: 'string',
1022
1387
  format: 'uri',
1023
- maxGraphemes: 1024,
1024
1388
  description: 'URI to external data',
1025
1389
  },
1026
1390
  },
@@ -1064,6 +1428,19 @@ const schemaDict = {
1064
1428
  },
1065
1429
  },
1066
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)',
1441
+ },
1442
+ },
1443
+ },
1067
1444
  largeImage: {
1068
1445
  type: 'object',
1069
1446
  required: ['image'],
@@ -1099,26 +1476,32 @@ const schemaDict = {
1099
1476
  to: {
1100
1477
  type: 'string',
1101
1478
  description: 'The recipient of the funds. Can be identified by DID or a clear-text name.',
1479
+ maxLength: 2048,
1102
1480
  },
1103
1481
  amount: {
1104
1482
  type: 'string',
1105
- description: 'Amount of funding received.',
1483
+ description: "Amount of funding received as a numeric string (e.g. '1000.50').",
1484
+ maxLength: 50,
1106
1485
  },
1107
1486
  currency: {
1108
1487
  type: 'string',
1109
1488
  description: 'Currency of the payment (e.g. EUR, USD, ETH).',
1489
+ maxLength: 10,
1110
1490
  },
1111
1491
  paymentRail: {
1112
1492
  type: 'string',
1113
1493
  description: 'How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).',
1494
+ maxLength: 50,
1114
1495
  },
1115
1496
  paymentNetwork: {
1116
1497
  type: 'string',
1117
1498
  description: 'Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).',
1499
+ maxLength: 50,
1118
1500
  },
1119
1501
  transactionId: {
1120
1502
  type: 'string',
1121
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,
1122
1505
  },
1123
1506
  for: {
1124
1507
  type: 'string',
@@ -1145,36 +1528,71 @@ const schemaDict = {
1145
1528
  },
1146
1529
  },
1147
1530
  },
1148
- 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: {
1149
1571
  lexicon: 1,
1150
- id: 'org.hypercerts.helper.workScopeTag',
1572
+ id: 'org.hypercerts.workscope.tag',
1151
1573
  defs: {
1152
1574
  main: {
1153
1575
  type: 'record',
1154
- 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.',
1155
1577
  key: 'tid',
1156
1578
  record: {
1157
1579
  type: 'object',
1158
- required: ['createdAt', 'key', 'label'],
1580
+ required: ['key', 'name', 'createdAt'],
1159
1581
  properties: {
1160
- createdAt: {
1161
- type: 'string',
1162
- format: 'datetime',
1163
- description: 'Client-declared timestamp when this record was originally created',
1164
- },
1165
1582
  key: {
1166
1583
  type: 'string',
1167
- 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.",
1168
1585
  maxLength: 120,
1169
1586
  },
1170
- label: {
1587
+ name: {
1171
1588
  type: 'string',
1172
- description: 'Human-readable label for this scope.',
1589
+ description: 'Human-readable name for this scope.',
1173
1590
  maxLength: 200,
1174
1591
  },
1175
- kind: {
1592
+ category: {
1176
1593
  type: 'string',
1177
- 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'],
1178
1596
  maxLength: 50,
1179
1597
  },
1180
1598
  description: {
@@ -1186,7 +1604,18 @@ const schemaDict = {
1186
1604
  parent: {
1187
1605
  type: 'ref',
1188
1606
  ref: 'lex:com.atproto.repo.strongRef',
1189
- 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.",
1190
1619
  },
1191
1620
  aliases: {
1192
1621
  type: 'array',
@@ -1195,15 +1624,30 @@ const schemaDict = {
1195
1624
  maxLength: 200,
1196
1625
  },
1197
1626
  maxLength: 50,
1198
- 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.',
1199
1638
  },
1200
- externalReference: {
1639
+ referenceDocument: {
1201
1640
  type: 'union',
1202
1641
  refs: [
1203
1642
  'lex:org.hypercerts.defs#uri',
1204
1643
  'lex:org.hypercerts.defs#smallBlob',
1205
1644
  ],
1206
- 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.',
1207
1651
  },
1208
1652
  },
1209
1653
  },
@@ -1213,8 +1657,8 @@ const schemaDict = {
1213
1657
  };
1214
1658
  const schemas = Object.values(schemaDict);
1215
1659
  const lexicons = new Lexicons(schemas);
1216
- function validate$i(v, id, hash, requiredType) {
1217
- return (requiredType ? is$typed$i : maybe$typed)(v, id, hash)
1660
+ function validate$n(v, id, hash, requiredType) {
1661
+ return (requiredType ? is$typed$n : maybe$typed)(v, id, hash)
1218
1662
  ? lexicons.validate(`${id}#${hash}`, v)
1219
1663
  : {
1220
1664
  success: false,
@@ -1222,6 +1666,7 @@ function validate$i(v, id, hash, requiredType) {
1222
1666
  };
1223
1667
  }
1224
1668
  const ids = {
1669
+ AppCertifiedActorOrganization: 'app.certified.actor.organization',
1225
1670
  AppCertifiedActorProfile: 'app.certified.actor.profile',
1226
1671
  AppCertifiedBadgeAward: 'app.certified.badge.award',
1227
1672
  AppCertifiedBadgeDefinition: 'app.certified.badge.definition',
@@ -1229,31 +1674,117 @@ const ids = {
1229
1674
  AppCertifiedDefs: 'app.certified.defs',
1230
1675
  AppCertifiedLocation: 'app.certified.location',
1231
1676
  ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',
1677
+ OrgHyperboardsBoard: 'org.hyperboards.board',
1678
+ OrgHyperboardsDisplayProfile: 'org.hyperboards.displayProfile',
1232
1679
  OrgHypercertsClaimActivity: 'org.hypercerts.claim.activity',
1233
- OrgHypercertsClaimAttachment: 'org.hypercerts.claim.attachment',
1234
- OrgHypercertsClaimCollection: 'org.hypercerts.claim.collection',
1235
- OrgHypercertsClaimContributionDetails: 'org.hypercerts.claim.contributionDetails',
1680
+ OrgHypercertsClaimContribution: 'org.hypercerts.claim.contribution',
1236
1681
  OrgHypercertsClaimContributorInformation: 'org.hypercerts.claim.contributorInformation',
1237
- OrgHypercertsClaimEvaluation: 'org.hypercerts.claim.evaluation',
1238
- OrgHypercertsClaimMeasurement: 'org.hypercerts.claim.measurement',
1239
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',
1240
1688
  OrgHypercertsDefs: 'org.hypercerts.defs',
1241
1689
  OrgHypercertsFundingReceipt: 'org.hypercerts.funding.receipt',
1242
- OrgHypercertsHelperWorkScopeTag: 'org.hypercerts.helper.workScopeTag',
1690
+ OrgHypercertsWorkscopeCel: 'org.hypercerts.workscope.cel',
1691
+ OrgHypercertsWorkscopeTag: 'org.hypercerts.workscope.tag',
1243
1692
  };
1244
1693
 
1245
- var lexicon$h = 1;
1246
- var id$z = "app.certified.actor.profile";
1247
- var defs$j = {
1694
+ var lexicon$m = 1;
1695
+ var id$J = "app.certified.actor.organization";
1696
+ var defs$o = {
1697
+ main: {
1698
+ type: "record",
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",
1701
+ record: {
1702
+ type: "object",
1703
+ required: [
1704
+ "createdAt"
1705
+ ],
1706
+ properties: {
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
1716
+ },
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
+ }
1724
+ },
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: {
1731
+ type: "string",
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."
1734
+ },
1735
+ createdAt: {
1736
+ type: "string",
1737
+ format: "datetime",
1738
+ description: "Client-declared timestamp when this record was originally created."
1739
+ }
1740
+ }
1741
+ }
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 = {
1248
1775
  main: {
1249
1776
  type: "record",
1250
- description: "A declaration of a Hypercert account profile.",
1777
+ description: "A declaration of a Certified account profile.",
1251
1778
  key: "literal:self",
1252
1779
  record: {
1253
1780
  type: "object",
1781
+ required: [
1782
+ "createdAt"
1783
+ ],
1254
1784
  properties: {
1255
1785
  displayName: {
1256
1786
  type: "string",
1787
+ description: "Display name for the account",
1257
1788
  maxGraphemes: 64,
1258
1789
  maxLength: 640
1259
1790
  },
@@ -1271,7 +1802,8 @@ var defs$j = {
1271
1802
  },
1272
1803
  website: {
1273
1804
  type: "string",
1274
- format: "uri"
1805
+ format: "uri",
1806
+ description: "Account website URL"
1275
1807
  },
1276
1808
  avatar: {
1277
1809
  type: "union",
@@ -1291,21 +1823,22 @@ var defs$j = {
1291
1823
  },
1292
1824
  createdAt: {
1293
1825
  type: "string",
1294
- format: "datetime"
1826
+ format: "datetime",
1827
+ description: "Client-declared timestamp when this record was originally created"
1295
1828
  }
1296
1829
  }
1297
1830
  }
1298
1831
  }
1299
1832
  };
1300
1833
  var ACTOR_PROFILE_LEXICON_JSON = {
1301
- lexicon: lexicon$h,
1302
- id: id$z,
1303
- defs: defs$j
1834
+ lexicon: lexicon$l,
1835
+ id: id$I,
1836
+ defs: defs$n
1304
1837
  };
1305
1838
 
1306
- var lexicon$g = 1;
1307
- var id$y = "app.certified.badge.award";
1308
- var defs$i = {
1839
+ var lexicon$k = 1;
1840
+ var id$H = "app.certified.badge.award";
1841
+ var defs$m = {
1309
1842
  main: {
1310
1843
  type: "record",
1311
1844
  description: "Records a badge award to a user, project, or activity claim.",
@@ -1333,7 +1866,14 @@ var defs$i = {
1333
1866
  },
1334
1867
  note: {
1335
1868
  type: "string",
1336
- description: "Optional statement explaining the reason for this badge award."
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
1337
1877
  },
1338
1878
  createdAt: {
1339
1879
  type: "string",
@@ -1345,14 +1885,14 @@ var defs$i = {
1345
1885
  }
1346
1886
  };
1347
1887
  var BADGE_AWARD_LEXICON_JSON = {
1348
- lexicon: lexicon$g,
1349
- id: id$y,
1350
- defs: defs$i
1888
+ lexicon: lexicon$k,
1889
+ id: id$H,
1890
+ defs: defs$m
1351
1891
  };
1352
1892
 
1353
- var lexicon$f = 1;
1354
- var id$x = "app.certified.badge.definition";
1355
- var defs$h = {
1893
+ var lexicon$j = 1;
1894
+ var id$G = "app.certified.badge.definition";
1895
+ var defs$l = {
1356
1896
  main: {
1357
1897
  type: "record",
1358
1898
  description: "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.",
@@ -1368,11 +1908,13 @@ var defs$h = {
1368
1908
  properties: {
1369
1909
  badgeType: {
1370
1910
  type: "string",
1371
- description: "Category of the badge (e.g. endorsement, participation, affiliation)."
1911
+ description: "Category of the badge (e.g. endorsement, participation, affiliation).",
1912
+ maxLength: 100
1372
1913
  },
1373
1914
  title: {
1374
1915
  type: "string",
1375
- description: "Human-readable title of the badge."
1916
+ description: "Human-readable title of the badge.",
1917
+ maxLength: 256
1376
1918
  },
1377
1919
  icon: {
1378
1920
  type: "blob",
@@ -1387,11 +1929,14 @@ var defs$h = {
1387
1929
  },
1388
1930
  description: {
1389
1931
  type: "string",
1390
- 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
1391
1935
  },
1392
1936
  allowedIssuers: {
1393
1937
  type: "array",
1394
1938
  description: "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.",
1939
+ maxLength: 100,
1395
1940
  items: {
1396
1941
  type: "ref",
1397
1942
  ref: "app.certified.defs#did"
@@ -1407,14 +1952,14 @@ var defs$h = {
1407
1952
  }
1408
1953
  };
1409
1954
  var BADGE_DEFINITION_LEXICON_JSON = {
1410
- lexicon: lexicon$f,
1411
- id: id$x,
1412
- defs: defs$h
1955
+ lexicon: lexicon$j,
1956
+ id: id$G,
1957
+ defs: defs$l
1413
1958
  };
1414
1959
 
1415
- var lexicon$e = 1;
1416
- var id$w = "app.certified.badge.response";
1417
- var defs$g = {
1960
+ var lexicon$i = 1;
1961
+ var id$F = "app.certified.badge.response";
1962
+ var defs$k = {
1418
1963
  main: {
1419
1964
  type: "record",
1420
1965
  description: "Recipient response to a badge award.",
@@ -1434,7 +1979,7 @@ var defs$g = {
1434
1979
  },
1435
1980
  response: {
1436
1981
  type: "string",
1437
- "enum": [
1982
+ knownValues: [
1438
1983
  "accepted",
1439
1984
  "rejected"
1440
1985
  ],
@@ -1442,7 +1987,8 @@ var defs$g = {
1442
1987
  },
1443
1988
  weight: {
1444
1989
  type: "string",
1445
- 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
1446
1992
  },
1447
1993
  createdAt: {
1448
1994
  type: "string",
@@ -1454,15 +2000,15 @@ var defs$g = {
1454
2000
  }
1455
2001
  };
1456
2002
  var BADGE_RESPONSE_LEXICON_JSON = {
1457
- lexicon: lexicon$e,
1458
- id: id$w,
1459
- defs: defs$g
2003
+ lexicon: lexicon$i,
2004
+ id: id$F,
2005
+ defs: defs$k
1460
2006
  };
1461
2007
 
1462
- var lexicon$d = 1;
1463
- var id$v = "app.certified.defs";
1464
- var description$1 = "Common type definitions used across certified protocols.";
1465
- 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 = {
1466
2012
  did: {
1467
2013
  type: "object",
1468
2014
  description: "A Decentralized Identifier (DID) string.",
@@ -1480,15 +2026,15 @@ var defs$f = {
1480
2026
  }
1481
2027
  };
1482
2028
  var CERTIFIED_DEFS_LEXICON_JSON = {
1483
- lexicon: lexicon$d,
1484
- id: id$v,
1485
- description: description$1,
1486
- defs: defs$f
2029
+ lexicon: lexicon$h,
2030
+ id: id$E,
2031
+ description: description$2,
2032
+ defs: defs$j
1487
2033
  };
1488
2034
 
1489
- var lexicon$c = 1;
1490
- var id$u = "app.certified.location";
1491
- var defs$e = {
2035
+ var lexicon$g = 1;
2036
+ var id$D = "app.certified.location";
2037
+ var defs$i = {
1492
2038
  main: {
1493
2039
  type: "record",
1494
2040
  description: "A location reference",
@@ -1516,10 +2062,16 @@ var defs$e = {
1516
2062
  },
1517
2063
  locationType: {
1518
2064
  type: "string",
1519
- 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",
1520
2066
  knownValues: [
1521
2067
  "coordinate-decimal",
1522
- "geojson-point"
2068
+ "geojson-point",
2069
+ "geojson",
2070
+ "h3",
2071
+ "geohash",
2072
+ "wkt",
2073
+ "address",
2074
+ "scaledCoordinates"
1523
2075
  ],
1524
2076
  maxLength: 20
1525
2077
  },
@@ -1534,13 +2086,13 @@ var defs$e = {
1534
2086
  },
1535
2087
  name: {
1536
2088
  type: "string",
1537
- description: "Optional name for this location",
2089
+ description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
1538
2090
  maxLength: 1000,
1539
2091
  maxGraphemes: 100
1540
2092
  },
1541
2093
  description: {
1542
2094
  type: "string",
1543
- description: "Optional description for this location",
2095
+ description: "Additional context about this location, such as its significance to the work or specific boundaries",
1544
2096
  maxLength: 2000,
1545
2097
  maxGraphemes: 500
1546
2098
  },
@@ -1569,15 +2121,15 @@ var defs$e = {
1569
2121
  }
1570
2122
  };
1571
2123
  var LOCATION_LEXICON_JSON = {
1572
- lexicon: lexicon$c,
1573
- id: id$u,
1574
- defs: defs$e
2124
+ lexicon: lexicon$g,
2125
+ id: id$D,
2126
+ defs: defs$i
1575
2127
  };
1576
2128
 
1577
- var lexicon$b = 1;
1578
- var id$t = "com.atproto.repo.strongRef";
1579
- var description = "A URI with a content-hash fingerprint.";
1580
- 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 = {
1581
2133
  main: {
1582
2134
  type: "object",
1583
2135
  required: [
@@ -1597,75 +2149,328 @@ var defs$d = {
1597
2149
  }
1598
2150
  };
1599
2151
  var STRONG_REF_LEXICON_JSON = {
1600
- lexicon: lexicon$b,
1601
- id: id$t,
1602
- description: description,
1603
- defs: defs$d
2152
+ lexicon: lexicon$f,
2153
+ id: id$C,
2154
+ description: description$1,
2155
+ defs: defs$h
1604
2156
  };
1605
2157
 
1606
- var lexicon$a = 1;
1607
- var id$s = "org.hypercerts.claim.activity";
1608
- var defs$c = {
2158
+ var lexicon$e = 1;
2159
+ var id$B = "org.hyperboards.board";
2160
+ var defs$g = {
1609
2161
  main: {
1610
2162
  type: "record",
1611
- description: "A hypercert record tracking impact work.",
1612
- key: "any",
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",
1613
2165
  record: {
1614
2166
  type: "object",
1615
2167
  required: [
1616
- "title",
1617
- "shortDescription",
2168
+ "subject",
1618
2169
  "createdAt"
1619
2170
  ],
1620
2171
  properties: {
1621
- title: {
1622
- type: "string",
1623
- description: "Title of the hypercert.",
1624
- maxLength: 256
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."
1625
2176
  },
1626
- shortDescription: {
1627
- type: "string",
1628
- description: "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
1629
- maxLength: 3000,
1630
- maxGraphemes: 300
2177
+ config: {
2178
+ type: "ref",
2179
+ ref: "#boardConfig",
2180
+ description: "Board-level visual configuration (background, colors, aspect ratio)."
1631
2181
  },
1632
- shortDescriptionFacets: {
2182
+ contributorConfigs: {
1633
2183
  type: "array",
1634
- description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
2184
+ description: "Per-contributor configuration entries for this board.",
2185
+ maxLength: 1000,
1635
2186
  items: {
1636
2187
  type: "ref",
1637
- ref: "app.bsky.richtext.facet"
2188
+ ref: "#contributorConfig"
1638
2189
  }
1639
2190
  },
1640
- description: {
2191
+ createdAt: {
1641
2192
  type: "string",
1642
- description: "Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
1643
- maxLength: 30000,
1644
- maxGraphemes: 3000
1645
- },
1646
- descriptionFacets: {
1647
- type: "array",
1648
- description: "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
1649
- items: {
1650
- type: "ref",
1651
- ref: "app.bsky.richtext.facet"
1652
- }
1653
- },
1654
- image: {
1655
- type: "union",
1656
- refs: [
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: [
1657
2453
  "org.hypercerts.defs#uri",
1658
2454
  "org.hypercerts.defs#smallImage"
1659
2455
  ],
1660
2456
  description: "The hypercert visual representation as a URI or image blob."
1661
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
+ },
1662
2467
  workScope: {
1663
2468
  type: "union",
1664
2469
  refs: [
1665
- "com.atproto.repo.strongRef",
2470
+ "org.hypercerts.workscope.cel",
1666
2471
  "#workScopeString"
1667
2472
  ],
1668
- description: "Work scope definition. Either a strongRef to a work-scope logic record (structured, nested logic), or a free-form string for simple or legacy scopes. The work scope record should conform to the org.hypercerts.helper.workScopeTag lexicon."
2473
+ description: "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes."
1669
2474
  },
1670
2475
  startDate: {
1671
2476
  type: "string",
@@ -1677,12 +2482,13 @@ var defs$c = {
1677
2482
  format: "datetime",
1678
2483
  description: "When the work ended"
1679
2484
  },
1680
- contributors: {
2485
+ locations: {
1681
2486
  type: "array",
1682
- description: "An array of contributor objects, each containing contributor information, weight, and contribution details.",
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,
1683
2489
  items: {
1684
2490
  type: "ref",
1685
- ref: "#contributor"
2491
+ ref: "com.atproto.repo.strongRef"
1686
2492
  }
1687
2493
  },
1688
2494
  rights: {
@@ -1690,14 +2496,6 @@ var defs$c = {
1690
2496
  ref: "com.atproto.repo.strongRef",
1691
2497
  description: "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
1692
2498
  },
1693
- locations: {
1694
- type: "array",
1695
- description: "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
1696
- items: {
1697
- type: "ref",
1698
- ref: "com.atproto.repo.strongRef"
1699
- }
1700
- },
1701
2499
  createdAt: {
1702
2500
  type: "string",
1703
2501
  format: "datetime",
@@ -1718,11 +2516,12 @@ var defs$c = {
1718
2516
  "#contributorIdentity",
1719
2517
  "com.atproto.repo.strongRef"
1720
2518
  ],
1721
- description: "Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record."
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."
1722
2520
  },
1723
2521
  contributionWeight: {
1724
2522
  type: "string",
1725
- 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."
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
1726
2525
  },
1727
2526
  contributionDetails: {
1728
2527
  type: "union",
@@ -1730,7 +2529,7 @@ var defs$c = {
1730
2529
  "#contributorRole",
1731
2530
  "com.atproto.repo.strongRef"
1732
2531
  ],
1733
- description: "Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record."
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."
1734
2533
  }
1735
2534
  }
1736
2535
  },
@@ -1781,107 +2580,163 @@ var defs$c = {
1781
2580
  }
1782
2581
  };
1783
2582
  var ACTIVITY_LEXICON_JSON = {
1784
- lexicon: lexicon$a,
1785
- id: id$s,
1786
- defs: defs$c
2583
+ lexicon: lexicon$c,
2584
+ id: id$z,
2585
+ defs: defs$e
1787
2586
  };
1788
2587
 
1789
- var lexicon$9 = 1;
1790
- var id$r = "org.hypercerts.claim.attachment";
1791
- var defs$b = {
2588
+ var lexicon$b = 1;
2589
+ var id$y = "org.hypercerts.claim.contribution";
2590
+ var defs$d = {
1792
2591
  main: {
1793
2592
  type: "record",
1794
- description: "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).",
2593
+ description: "Details about a specific contribution including role, description, and timeframe.",
1795
2594
  key: "tid",
1796
2595
  record: {
1797
2596
  type: "object",
1798
2597
  required: [
1799
- "title",
1800
- "content",
1801
2598
  "createdAt"
1802
2599
  ],
1803
2600
  properties: {
1804
- subjects: {
1805
- type: "array",
1806
- 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.",
1807
- items: {
1808
- type: "ref",
1809
- ref: "com.atproto.repo.strongRef"
1810
- },
2601
+ role: {
2602
+ type: "string",
2603
+ description: "Role or title of the contributor.",
1811
2604
  maxLength: 100
1812
2605
  },
1813
- contentType: {
2606
+ contributionDescription: {
1814
2607
  type: "string",
1815
- maxLength: 64,
1816
- description: "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc."
2608
+ description: "Description of what the contribution concretely involved.",
2609
+ maxLength: 10000,
2610
+ maxGraphemes: 1000
1817
2611
  },
1818
- content: {
1819
- type: "array",
1820
- description: "The files, documents, or external references included in this attachment record.",
1821
- items: {
1822
- type: "union",
1823
- refs: [
1824
- "org.hypercerts.defs#uri",
1825
- "org.hypercerts.defs#smallBlob"
1826
- ]
1827
- },
1828
- maxLength: 100
2612
+ startDate: {
2613
+ type: "string",
2614
+ format: "datetime",
2615
+ description: "When this contribution started. Should fall within the parent hypercert's timeframe."
1829
2616
  },
1830
- title: {
2617
+ endDate: {
1831
2618
  type: "string",
1832
- maxLength: 256,
1833
- description: "Title of this attachment."
2619
+ format: "datetime",
2620
+ description: "When this contribution finished. Should fall within the parent hypercert's timeframe."
1834
2621
  },
1835
- shortDescription: {
2622
+ createdAt: {
1836
2623
  type: "string",
1837
- description: "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
1838
- maxLength: 3000,
1839
- maxGraphemes: 300
2624
+ format: "datetime",
2625
+ description: "Client-declared timestamp when this record was originally created."
2626
+ }
2627
+ }
2628
+ }
2629
+ }
2630
+ };
2631
+ var CONTRIBUTION_LEXICON_JSON = {
2632
+ lexicon: lexicon$b,
2633
+ id: id$y,
2634
+ defs: defs$d
2635
+ };
2636
+
2637
+ var lexicon$a = 1;
2638
+ var id$x = "org.hypercerts.claim.contributorInformation";
2639
+ var defs$c = {
2640
+ main: {
2641
+ type: "record",
2642
+ description: "Contributor information including identifier, display name, and image.",
2643
+ key: "tid",
2644
+ record: {
2645
+ type: "object",
2646
+ required: [
2647
+ "createdAt"
2648
+ ],
2649
+ properties: {
2650
+ identifier: {
2651
+ type: "string",
2652
+ description: "DID (did:plc:...) or URI to a social profile of the contributor.",
2653
+ maxLength: 2048
1840
2654
  },
1841
- shortDescriptionFacets: {
1842
- type: "array",
1843
- description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
1844
- items: {
1845
- type: "ref",
1846
- ref: "app.bsky.richtext.facet"
1847
- }
2655
+ displayName: {
2656
+ type: "string",
2657
+ description: "Human-readable name for the contributor as it should appear in UI.",
2658
+ maxLength: 100
2659
+ },
2660
+ image: {
2661
+ type: "union",
2662
+ refs: [
2663
+ "org.hypercerts.defs#uri",
2664
+ "org.hypercerts.defs#smallImage"
2665
+ ],
2666
+ description: "The contributor visual representation as a URI or image blob."
2667
+ },
2668
+ createdAt: {
2669
+ type: "string",
2670
+ format: "datetime",
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: {
2700
+ type: "string",
2701
+ description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
2702
+ maxLength: 100
1848
2703
  },
1849
- description: {
2704
+ rightsType: {
1850
2705
  type: "string",
1851
- description: "Optional longer description of this attachment, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
1852
- maxLength: 30000,
1853
- maxGraphemes: 3000
2706
+ description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search",
2707
+ maxLength: 10
1854
2708
  },
1855
- descriptionFacets: {
1856
- type: "array",
1857
- description: "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
1858
- items: {
1859
- type: "ref",
1860
- ref: "app.bsky.richtext.facet"
1861
- }
2709
+ rightsDescription: {
2710
+ type: "string",
2711
+ description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
2712
+ maxLength: 10000,
2713
+ maxGraphemes: 1000
1862
2714
  },
1863
- location: {
1864
- type: "ref",
1865
- ref: "com.atproto.repo.strongRef",
1866
- 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."
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."
1867
2722
  },
1868
2723
  createdAt: {
1869
2724
  type: "string",
1870
2725
  format: "datetime",
1871
- description: "Client-declared timestamp when this record was originally created."
2726
+ description: "Client-declared timestamp when this record was originally created"
1872
2727
  }
1873
2728
  }
1874
2729
  }
1875
2730
  }
1876
2731
  };
1877
- var ATTACHMENT_LEXICON_JSON = {
2732
+ var RIGHTS_LEXICON_JSON = {
1878
2733
  lexicon: lexicon$9,
1879
- id: id$r,
2734
+ id: id$w,
1880
2735
  defs: defs$b
1881
2736
  };
1882
2737
 
1883
2738
  var lexicon$8 = 1;
1884
- var id$q = "org.hypercerts.claim.collection";
2739
+ var id$v = "org.hypercerts.collection";
1885
2740
  var defs$a = {
1886
2741
  main: {
1887
2742
  type: "record",
@@ -1891,17 +2746,17 @@ var defs$a = {
1891
2746
  type: "object",
1892
2747
  required: [
1893
2748
  "title",
1894
- "items",
1895
2749
  "createdAt"
1896
2750
  ],
1897
2751
  properties: {
1898
2752
  type: {
1899
2753
  type: "string",
1900
- 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
1901
2756
  },
1902
2757
  title: {
1903
2758
  type: "string",
1904
- description: "The title of this collection",
2759
+ description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
1905
2760
  maxLength: 800,
1906
2761
  maxGraphemes: 80
1907
2762
  },
@@ -1935,6 +2790,7 @@ var defs$a = {
1935
2790
  items: {
1936
2791
  type: "array",
1937
2792
  description: "Array of items in this collection with optional weights.",
2793
+ maxLength: 1000,
1938
2794
  items: {
1939
2795
  type: "ref",
1940
2796
  ref: "#item"
@@ -1962,54 +2818,59 @@ var defs$a = {
1962
2818
  itemIdentifier: {
1963
2819
  type: "ref",
1964
2820
  ref: "com.atproto.repo.strongRef",
1965
- 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)."
1966
2822
  },
1967
2823
  itemWeight: {
1968
2824
  type: "string",
1969
- 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
1970
2827
  }
1971
2828
  }
1972
2829
  }
1973
2830
  };
1974
- var COLLECTION_LEXICON_JSON = {
2831
+ var HYPERCERTS_COLLECTION_LEXICON_JSON = {
1975
2832
  lexicon: lexicon$8,
1976
- id: id$q,
2833
+ id: id$v,
1977
2834
  defs: defs$a
1978
2835
  };
1979
2836
 
1980
2837
  var lexicon$7 = 1;
1981
- var id$p = "org.hypercerts.claim.contributionDetails";
2838
+ var id$u = "org.hypercerts.context.acknowledgement";
1982
2839
  var defs$9 = {
1983
2840
  main: {
1984
2841
  type: "record",
1985
- 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.",
1986
2843
  key: "tid",
1987
2844
  record: {
1988
2845
  type: "object",
1989
2846
  required: [
2847
+ "subject",
2848
+ "acknowledged",
1990
2849
  "createdAt"
1991
2850
  ],
1992
2851
  properties: {
1993
- role: {
1994
- type: "string",
1995
- description: "Role or title of the contributor.",
1996
- 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)."
1997
2856
  },
1998
- contributionDescription: {
1999
- type: "string",
2000
- description: "What the contribution concretely was.",
2001
- maxLength: 10000,
2002
- 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."
2003
2864
  },
2004
- startDate: {
2005
- type: "string",
2006
- format: "datetime",
2007
- 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)."
2008
2868
  },
2009
- endDate: {
2869
+ comment: {
2010
2870
  type: "string",
2011
- format: "datetime",
2012
- 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
2013
2874
  },
2014
2875
  createdAt: {
2015
2876
  type: "string",
@@ -2020,41 +2881,80 @@ var defs$9 = {
2020
2881
  }
2021
2882
  }
2022
2883
  };
2023
- var CONTRIBUTION_DETAILS_LEXICON_JSON = {
2884
+ var CONTEXT_ACKNOWLEDGEMENT_LEXICON_JSON = {
2024
2885
  lexicon: lexicon$7,
2025
- id: id$p,
2886
+ id: id$u,
2026
2887
  defs: defs$9
2027
2888
  };
2028
2889
 
2029
2890
  var lexicon$6 = 1;
2030
- var id$o = "org.hypercerts.claim.contributorInformation";
2891
+ var id$t = "org.hypercerts.context.attachment";
2031
2892
  var defs$8 = {
2032
2893
  main: {
2033
2894
  type: "record",
2034
- 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).",
2035
2896
  key: "tid",
2036
2897
  record: {
2037
2898
  type: "object",
2038
2899
  required: [
2900
+ "title",
2039
2901
  "createdAt"
2040
2902
  ],
2041
2903
  properties: {
2042
- identifier: {
2043
- type: "string",
2044
- 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
2045
2912
  },
2046
- displayName: {
2913
+ contentType: {
2047
2914
  type: "string",
2048
- 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
+ },
2049
2928
  maxLength: 100
2050
2929
  },
2051
- image: {
2052
- type: "union",
2053
- refs: [
2054
- "org.hypercerts.defs#uri",
2055
- "org.hypercerts.defs#smallImage"
2056
- ],
2057
- 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."
2058
2958
  },
2059
2959
  createdAt: {
2060
2960
  type: "string",
@@ -2065,38 +2965,15 @@ var defs$8 = {
2065
2965
  }
2066
2966
  }
2067
2967
  };
2068
- var CONTRIBUTOR_INFORMATION_LEXICON_JSON = {
2968
+ var CONTEXT_ATTACHMENT_LEXICON_JSON = {
2069
2969
  lexicon: lexicon$6,
2070
- id: id$o,
2970
+ id: id$t,
2071
2971
  defs: defs$8
2072
2972
  };
2073
2973
 
2074
2974
  var lexicon$5 = 1;
2075
- var id$n = "org.hypercerts.claim.evaluation";
2975
+ var id$s = "org.hypercerts.context.evaluation";
2076
2976
  var defs$7 = {
2077
- score: {
2078
- type: "object",
2079
- description: "Overall score for an evaluation on a numeric scale.",
2080
- required: [
2081
- "min",
2082
- "max",
2083
- "value"
2084
- ],
2085
- properties: {
2086
- min: {
2087
- type: "integer",
2088
- description: "Minimum value of the scale, e.g. 0 or 1."
2089
- },
2090
- max: {
2091
- type: "integer",
2092
- description: "Maximum value of the scale, e.g. 5 or 10."
2093
- },
2094
- value: {
2095
- type: "integer",
2096
- description: "Score within the inclusive range [min, max]."
2097
- }
2098
- }
2099
- },
2100
2977
  main: {
2101
2978
  type: "record",
2102
2979
  description: "An evaluation of a hypercert record (e.g. an activity and its impact).",
@@ -2112,7 +2989,7 @@ var defs$7 = {
2112
2989
  subject: {
2113
2990
  type: "ref",
2114
2991
  ref: "com.atproto.repo.strongRef",
2115
- 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.)"
2116
2993
  },
2117
2994
  evaluators: {
2118
2995
  type: "array",
@@ -2137,7 +3014,7 @@ var defs$7 = {
2137
3014
  },
2138
3015
  measurements: {
2139
3016
  type: "array",
2140
- 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",
2141
3018
  items: {
2142
3019
  type: "ref",
2143
3020
  ref: "com.atproto.repo.strongRef"
@@ -2167,20 +3044,43 @@ var defs$7 = {
2167
3044
  }
2168
3045
  }
2169
3046
  }
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]."
3068
+ }
3069
+ }
2170
3070
  }
2171
3071
  };
2172
- var EVALUATION_LEXICON_JSON = {
3072
+ var CONTEXT_EVALUATION_LEXICON_JSON = {
2173
3073
  lexicon: lexicon$5,
2174
- id: id$n,
3074
+ id: id$s,
2175
3075
  defs: defs$7
2176
3076
  };
2177
3077
 
2178
3078
  var lexicon$4 = 1;
2179
- var id$m = "org.hypercerts.claim.measurement";
3079
+ var id$r = "org.hypercerts.context.measurement";
2180
3080
  var defs$6 = {
2181
3081
  main: {
2182
3082
  type: "record",
2183
- 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.).",
2184
3084
  key: "tid",
2185
3085
  record: {
2186
3086
  type: "object",
@@ -2191,10 +3091,14 @@ var defs$6 = {
2191
3091
  "createdAt"
2192
3092
  ],
2193
3093
  properties: {
2194
- subject: {
2195
- type: "ref",
2196
- ref: "com.atproto.repo.strongRef",
2197
- description: "A strong reference to the record this measurement refers to (e.g. an activity, project, or claim)."
3094
+ subjects: {
3095
+ type: "array",
3096
+ description: "Strong references to the records this measurement refers to (e.g. activities, projects, or claims).",
3097
+ items: {
3098
+ type: "ref",
3099
+ ref: "com.atproto.repo.strongRef"
3100
+ },
3101
+ maxLength: 100
2198
3102
  },
2199
3103
  metric: {
2200
3104
  type: "string",
@@ -2208,7 +3112,7 @@ var defs$6 = {
2208
3112
  },
2209
3113
  value: {
2210
3114
  type: "string",
2211
- description: "The measured numeric value.",
3115
+ description: "The measured value as a numeric string (e.g. '1234.56')",
2212
3116
  maxLength: 500
2213
3117
  },
2214
3118
  startDate: {
@@ -2219,7 +3123,7 @@ var defs$6 = {
2219
3123
  endDate: {
2220
3124
  type: "string",
2221
3125
  format: "datetime",
2222
- description: "The end date and time when the measurement ended. If it was a one time measurement, the endDate should be equal to the startDate."
3126
+ description: "The end date and time when the measurement ended. For one-time measurements, this should equal the start date."
2223
3127
  },
2224
3128
  locations: {
2225
3129
  type: "array",
@@ -2251,7 +3155,7 @@ var defs$6 = {
2251
3155
  },
2252
3156
  measurers: {
2253
3157
  type: "array",
2254
- description: "DIDs of the entity (or entities) that measured this data",
3158
+ description: "DIDs of the entities that performed this measurement",
2255
3159
  items: {
2256
3160
  type: "ref",
2257
3161
  ref: "app.certified.defs#did"
@@ -2281,68 +3185,16 @@ var defs$6 = {
2281
3185
  }
2282
3186
  }
2283
3187
  };
2284
- var MEASUREMENT_LEXICON_JSON = {
3188
+ var CONTEXT_MEASUREMENT_LEXICON_JSON = {
2285
3189
  lexicon: lexicon$4,
2286
- id: id$m,
3190
+ id: id$r,
2287
3191
  defs: defs$6
2288
3192
  };
2289
3193
 
2290
3194
  var lexicon$3 = 1;
2291
- var id$l = "org.hypercerts.claim.rights";
3195
+ var id$q = "org.hypercerts.defs";
3196
+ var description = "Common type definitions used across all Hypercerts protocols.";
2292
3197
  var defs$5 = {
2293
- main: {
2294
- type: "record",
2295
- 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.",
2296
- key: "tid",
2297
- record: {
2298
- type: "object",
2299
- required: [
2300
- "rightsName",
2301
- "rightsType",
2302
- "rightsDescription",
2303
- "createdAt"
2304
- ],
2305
- properties: {
2306
- rightsName: {
2307
- type: "string",
2308
- description: "Full name of the rights",
2309
- maxLength: 100
2310
- },
2311
- rightsType: {
2312
- type: "string",
2313
- description: "Short rights identifier for easier search",
2314
- maxLength: 10
2315
- },
2316
- rightsDescription: {
2317
- type: "string",
2318
- description: "Description of the rights of this hypercert"
2319
- },
2320
- attachment: {
2321
- type: "union",
2322
- refs: [
2323
- "org.hypercerts.defs#uri",
2324
- "org.hypercerts.defs#smallBlob"
2325
- ],
2326
- description: "An attachment to define the rights further, e.g. a legal document."
2327
- },
2328
- createdAt: {
2329
- type: "string",
2330
- format: "datetime",
2331
- description: "Client-declared timestamp when this record was originally created"
2332
- }
2333
- }
2334
- }
2335
- }
2336
- };
2337
- var RIGHTS_LEXICON_JSON = {
2338
- lexicon: lexicon$3,
2339
- id: id$l,
2340
- defs: defs$5
2341
- };
2342
-
2343
- var lexicon$2 = 1;
2344
- var id$k = "org.hypercerts.defs";
2345
- var defs$4 = {
2346
3198
  uri: {
2347
3199
  type: "object",
2348
3200
  required: [
@@ -2353,7 +3205,6 @@ var defs$4 = {
2353
3205
  uri: {
2354
3206
  type: "string",
2355
3207
  format: "uri",
2356
- maxGraphemes: 1024,
2357
3208
  description: "URI to external data"
2358
3209
  }
2359
3210
  }
@@ -2402,13 +3253,31 @@ var defs$4 = {
2402
3253
  image: {
2403
3254
  type: "blob",
2404
3255
  accept: [
2405
- "image/jpeg",
2406
- "image/jpg",
2407
- "image/png",
2408
- "image/webp"
3256
+ "image/jpeg",
3257
+ "image/jpg",
3258
+ "image/png",
3259
+ "image/webp"
3260
+ ],
3261
+ maxSize: 5242880,
3262
+ description: "Image (up to 5MB)"
3263
+ }
3264
+ }
3265
+ },
3266
+ smallVideo: {
3267
+ type: "object",
3268
+ required: [
3269
+ "video"
3270
+ ],
3271
+ description: "Object containing a small video",
3272
+ properties: {
3273
+ video: {
3274
+ type: "blob",
3275
+ accept: [
3276
+ "video/mp4",
3277
+ "video/webm"
2409
3278
  ],
2410
- maxSize: 5242880,
2411
- description: "Image (up to 5MB)"
3279
+ maxSize: 20971520,
3280
+ description: "Video (up to 20MB)"
2412
3281
  }
2413
3282
  }
2414
3283
  },
@@ -2434,14 +3303,15 @@ var defs$4 = {
2434
3303
  }
2435
3304
  };
2436
3305
  var HYPERCERTS_DEFS_LEXICON_JSON = {
2437
- lexicon: lexicon$2,
2438
- id: id$k,
2439
- defs: defs$4
3306
+ lexicon: lexicon$3,
3307
+ id: id$q,
3308
+ description: description,
3309
+ defs: defs$5
2440
3310
  };
2441
3311
 
2442
- var lexicon$1 = 1;
2443
- var id$j = "org.hypercerts.funding.receipt";
2444
- var defs$3 = {
3312
+ var lexicon$2 = 1;
3313
+ var id$p = "org.hypercerts.funding.receipt";
3314
+ var defs$4 = {
2445
3315
  main: {
2446
3316
  type: "record",
2447
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.",
@@ -2463,27 +3333,33 @@ var defs$3 = {
2463
3333
  },
2464
3334
  to: {
2465
3335
  type: "string",
2466
- 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
2467
3338
  },
2468
3339
  amount: {
2469
3340
  type: "string",
2470
- description: "Amount of funding received."
3341
+ description: "Amount of funding received as a numeric string (e.g. '1000.50').",
3342
+ maxLength: 50
2471
3343
  },
2472
3344
  currency: {
2473
3345
  type: "string",
2474
- description: "Currency of the payment (e.g. EUR, USD, ETH)."
3346
+ description: "Currency of the payment (e.g. EUR, USD, ETH).",
3347
+ maxLength: 10
2475
3348
  },
2476
3349
  paymentRail: {
2477
3350
  type: "string",
2478
- 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
2479
3353
  },
2480
3354
  paymentNetwork: {
2481
3355
  type: "string",
2482
- 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
2483
3358
  },
2484
3359
  transactionId: {
2485
3360
  type: "string",
2486
- 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
2487
3363
  },
2488
3364
  "for": {
2489
3365
  type: "string",
@@ -2510,44 +3386,95 @@ var defs$3 = {
2510
3386
  }
2511
3387
  };
2512
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 = {
2513
3439
  lexicon: lexicon$1,
2514
- id: id$j,
3440
+ id: id$o,
2515
3441
  defs: defs$3
2516
3442
  };
2517
3443
 
2518
3444
  var lexicon = 1;
2519
- var id$i = "org.hypercerts.helper.workScopeTag";
3445
+ var id$n = "org.hypercerts.workscope.tag";
2520
3446
  var defs$2 = {
2521
3447
  main: {
2522
3448
  type: "record",
2523
- 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.",
2524
3450
  key: "tid",
2525
3451
  record: {
2526
3452
  type: "object",
2527
3453
  required: [
2528
- "createdAt",
2529
3454
  "key",
2530
- "label"
3455
+ "name",
3456
+ "createdAt"
2531
3457
  ],
2532
3458
  properties: {
2533
- createdAt: {
2534
- type: "string",
2535
- format: "datetime",
2536
- description: "Client-declared timestamp when this record was originally created"
2537
- },
2538
3459
  key: {
2539
3460
  type: "string",
2540
- 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.",
2541
3462
  maxLength: 120
2542
3463
  },
2543
- label: {
3464
+ name: {
2544
3465
  type: "string",
2545
- description: "Human-readable label for this scope.",
3466
+ description: "Human-readable name for this scope.",
2546
3467
  maxLength: 200
2547
3468
  },
2548
- kind: {
3469
+ category: {
2549
3470
  type: "string",
2550
- 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
+ ],
2551
3478
  maxLength: 50
2552
3479
  },
2553
3480
  description: {
@@ -2559,7 +3486,22 @@ var defs$2 = {
2559
3486
  parent: {
2560
3487
  type: "ref",
2561
3488
  ref: "com.atproto.repo.strongRef",
2562
- 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."
2563
3505
  },
2564
3506
  aliases: {
2565
3507
  type: "array",
@@ -2568,106 +3510,148 @@ var defs$2 = {
2568
3510
  maxLength: 200
2569
3511
  },
2570
3512
  maxLength: 50,
2571
- 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."
2572
3524
  },
2573
- externalReference: {
3525
+ referenceDocument: {
2574
3526
  type: "union",
2575
3527
  refs: [
2576
3528
  "org.hypercerts.defs#uri",
2577
3529
  "org.hypercerts.defs#smallBlob"
2578
3530
  ],
2579
- 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."
2580
3537
  }
2581
3538
  }
2582
3539
  }
2583
3540
  }
2584
3541
  };
2585
- var WORK_SCOPE_TAG_LEXICON_JSON = {
3542
+ var WORKSCOPE_TAG_LEXICON_JSON = {
2586
3543
  lexicon: lexicon,
2587
- id: id$i,
3544
+ id: id$n,
2588
3545
  defs: defs$2
2589
3546
  };
2590
3547
 
2591
- const is$typed$h = is$typed$i, validate$h = validate$i;
2592
- const id$h = 'app.certified.actor.profile';
2593
- const hashMain$f = 'main';
2594
- function isMain$f(v) {
2595
- return is$typed$h(v, id$h, hashMain$f);
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);
2596
3553
  }
2597
- function validateMain$f(v) {
2598
- return validate$h(v, id$h, hashMain$f, true);
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);
2599
3583
  }
2600
3584
 
2601
3585
  var profile = /*#__PURE__*/Object.freeze({
2602
3586
  __proto__: null,
2603
- isMain: isMain$f,
2604
- isRecord: isMain$f,
2605
- validateMain: validateMain$f,
2606
- validateRecord: validateMain$f
3587
+ isMain: isMain$j,
3588
+ isRecord: isMain$j,
3589
+ validateMain: validateMain$j,
3590
+ validateRecord: validateMain$j
2607
3591
  });
2608
3592
 
2609
- const is$typed$g = is$typed$i, validate$g = validate$i;
2610
- const id$g = 'app.certified.badge.award';
2611
- const hashMain$e = 'main';
2612
- function isMain$e(v) {
2613
- return is$typed$g(v, id$g, hashMain$e);
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);
2614
3598
  }
2615
- function validateMain$e(v) {
2616
- return validate$g(v, id$g, hashMain$e, true);
3599
+ function validateMain$i(v) {
3600
+ return validate$k(v, id$k, hashMain$i, true);
2617
3601
  }
2618
3602
 
2619
3603
  var award = /*#__PURE__*/Object.freeze({
2620
3604
  __proto__: null,
2621
- isMain: isMain$e,
2622
- isRecord: isMain$e,
2623
- validateMain: validateMain$e,
2624
- validateRecord: validateMain$e
3605
+ isMain: isMain$i,
3606
+ isRecord: isMain$i,
3607
+ validateMain: validateMain$i,
3608
+ validateRecord: validateMain$i
2625
3609
  });
2626
3610
 
2627
- const is$typed$f = is$typed$i, validate$f = validate$i;
2628
- const id$f = 'app.certified.badge.definition';
2629
- const hashMain$d = 'main';
2630
- function isMain$d(v) {
2631
- return is$typed$f(v, id$f, hashMain$d);
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);
2632
3616
  }
2633
- function validateMain$d(v) {
2634
- return validate$f(v, id$f, hashMain$d, true);
3617
+ function validateMain$h(v) {
3618
+ return validate$j(v, id$j, hashMain$h, true);
2635
3619
  }
2636
3620
 
2637
3621
  var definition = /*#__PURE__*/Object.freeze({
2638
3622
  __proto__: null,
2639
- isMain: isMain$d,
2640
- isRecord: isMain$d,
2641
- validateMain: validateMain$d,
2642
- validateRecord: validateMain$d
3623
+ isMain: isMain$h,
3624
+ isRecord: isMain$h,
3625
+ validateMain: validateMain$h,
3626
+ validateRecord: validateMain$h
2643
3627
  });
2644
3628
 
2645
- const is$typed$e = is$typed$i, validate$e = validate$i;
2646
- const id$e = 'app.certified.badge.response';
2647
- const hashMain$c = 'main';
2648
- function isMain$c(v) {
2649
- return is$typed$e(v, id$e, hashMain$c);
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);
2650
3634
  }
2651
- function validateMain$c(v) {
2652
- return validate$e(v, id$e, hashMain$c, true);
3635
+ function validateMain$g(v) {
3636
+ return validate$i(v, id$i, hashMain$g, true);
2653
3637
  }
2654
3638
 
2655
3639
  var response = /*#__PURE__*/Object.freeze({
2656
3640
  __proto__: null,
2657
- isMain: isMain$c,
2658
- isRecord: isMain$c,
2659
- validateMain: validateMain$c,
2660
- validateRecord: validateMain$c
3641
+ isMain: isMain$g,
3642
+ isRecord: isMain$g,
3643
+ validateMain: validateMain$g,
3644
+ validateRecord: validateMain$g
2661
3645
  });
2662
3646
 
2663
- const is$typed$d = is$typed$i, validate$d = validate$i;
2664
- const id$d = 'app.certified.defs';
3647
+ const is$typed$h = is$typed$n, validate$h = validate$n;
3648
+ const id$h = 'app.certified.defs';
2665
3649
  const hashDid = 'did';
2666
3650
  function isDid(v) {
2667
- return is$typed$d(v, id$d, hashDid);
3651
+ return is$typed$h(v, id$h, hashDid);
2668
3652
  }
2669
3653
  function validateDid(v) {
2670
- return validate$d(v, id$d, hashDid);
3654
+ return validate$h(v, id$h, hashDid);
2671
3655
  }
2672
3656
 
2673
3657
  var defs$1 = /*#__PURE__*/Object.freeze({
@@ -2676,85 +3660,139 @@ var defs$1 = /*#__PURE__*/Object.freeze({
2676
3660
  validateDid: validateDid
2677
3661
  });
2678
3662
 
2679
- const is$typed$c = is$typed$i, validate$c = validate$i;
2680
- const id$c = 'app.certified.location';
2681
- const hashMain$b = 'main';
2682
- function isMain$b(v) {
2683
- return is$typed$c(v, id$c, hashMain$b);
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);
2684
3668
  }
2685
- function validateMain$b(v) {
2686
- return validate$c(v, id$c, hashMain$b, true);
3669
+ function validateMain$f(v) {
3670
+ return validate$g(v, id$g, hashMain$f, true);
2687
3671
  }
2688
3672
  const hashString = 'string';
2689
3673
  function isString(v) {
2690
- return is$typed$c(v, id$c, hashString);
3674
+ return is$typed$g(v, id$g, hashString);
2691
3675
  }
2692
3676
  function validateString(v) {
2693
- return validate$c(v, id$c, hashString);
3677
+ return validate$g(v, id$g, hashString);
2694
3678
  }
2695
3679
 
2696
3680
  var location = /*#__PURE__*/Object.freeze({
2697
3681
  __proto__: null,
2698
- isMain: isMain$b,
2699
- isRecord: isMain$b,
3682
+ isMain: isMain$f,
3683
+ isRecord: isMain$f,
2700
3684
  isString: isString,
2701
- validateMain: validateMain$b,
2702
- validateRecord: validateMain$b,
3685
+ validateMain: validateMain$f,
3686
+ validateRecord: validateMain$f,
2703
3687
  validateString: validateString
2704
3688
  });
2705
3689
 
2706
- const is$typed$b = is$typed$i, validate$b = validate$i;
2707
- const id$b = 'com.atproto.repo.strongRef';
2708
- const hashMain$a = 'main';
2709
- function isMain$a(v) {
2710
- return is$typed$b(v, id$b, hashMain$a);
3690
+ const is$typed$f = is$typed$n, validate$f = validate$n;
3691
+ const id$f = 'com.atproto.repo.strongRef';
3692
+ const hashMain$e = 'main';
3693
+ function isMain$e(v) {
3694
+ return is$typed$f(v, id$f, hashMain$e);
2711
3695
  }
2712
- function validateMain$a(v) {
2713
- return validate$b(v, id$b, hashMain$a);
3696
+ function validateMain$e(v) {
3697
+ return validate$f(v, id$f, hashMain$e);
2714
3698
  }
2715
3699
 
2716
3700
  var strongRef = /*#__PURE__*/Object.freeze({
2717
3701
  __proto__: null,
2718
- isMain: isMain$a,
2719
- validateMain: validateMain$a
3702
+ isMain: isMain$e,
3703
+ validateMain: validateMain$e
2720
3704
  });
2721
3705
 
2722
- const is$typed$a = is$typed$i, validate$a = validate$i;
2723
- const id$a = 'org.hypercerts.claim.activity';
2724
- const hashMain$9 = 'main';
2725
- function isMain$9(v) {
2726
- return is$typed$a(v, id$a, hashMain$9);
3706
+ const is$typed$e = is$typed$n, validate$e = validate$n;
3707
+ const id$e = 'org.hyperboards.board';
3708
+ const hashMain$d = 'main';
3709
+ function isMain$d(v) {
3710
+ return is$typed$e(v, id$e, hashMain$d);
2727
3711
  }
2728
- function validateMain$9(v) {
2729
- return validate$a(v, id$a, hashMain$9, true);
3712
+ function validateMain$d(v) {
3713
+ return validate$e(v, id$e, hashMain$d, true);
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
+ }
3729
+
3730
+ var board = /*#__PURE__*/Object.freeze({
3731
+ __proto__: null,
3732
+ isBoardConfig: isBoardConfig,
3733
+ isContributorConfig: isContributorConfig,
3734
+ isMain: isMain$d,
3735
+ isRecord: isMain$d,
3736
+ validateBoardConfig: validateBoardConfig,
3737
+ validateContributorConfig: validateContributorConfig,
3738
+ validateMain: validateMain$d,
3739
+ validateRecord: validateMain$d
3740
+ });
3741
+
3742
+ const is$typed$d = is$typed$n, validate$d = validate$n;
3743
+ const id$d = 'org.hyperboards.displayProfile';
3744
+ const hashMain$c = 'main';
3745
+ function isMain$c(v) {
3746
+ return is$typed$d(v, id$d, hashMain$c);
3747
+ }
3748
+ function validateMain$c(v) {
3749
+ return validate$d(v, id$d, hashMain$c, true);
3750
+ }
3751
+
3752
+ var displayProfile = /*#__PURE__*/Object.freeze({
3753
+ __proto__: null,
3754
+ isMain: isMain$c,
3755
+ isRecord: isMain$c,
3756
+ validateMain: validateMain$c,
3757
+ validateRecord: validateMain$c
3758
+ });
3759
+
3760
+ const is$typed$c = is$typed$n, validate$c = validate$n;
3761
+ const id$c = 'org.hypercerts.claim.activity';
3762
+ const hashMain$b = 'main';
3763
+ function isMain$b(v) {
3764
+ return is$typed$c(v, id$c, hashMain$b);
3765
+ }
3766
+ function validateMain$b(v) {
3767
+ return validate$c(v, id$c, hashMain$b, true);
2730
3768
  }
2731
3769
  const hashContributor = 'contributor';
2732
3770
  function isContributor(v) {
2733
- return is$typed$a(v, id$a, hashContributor);
3771
+ return is$typed$c(v, id$c, hashContributor);
2734
3772
  }
2735
3773
  function validateContributor(v) {
2736
- return validate$a(v, id$a, hashContributor);
3774
+ return validate$c(v, id$c, hashContributor);
2737
3775
  }
2738
3776
  const hashContributorIdentity = 'contributorIdentity';
2739
3777
  function isContributorIdentity(v) {
2740
- return is$typed$a(v, id$a, hashContributorIdentity);
3778
+ return is$typed$c(v, id$c, hashContributorIdentity);
2741
3779
  }
2742
3780
  function validateContributorIdentity(v) {
2743
- return validate$a(v, id$a, hashContributorIdentity);
3781
+ return validate$c(v, id$c, hashContributorIdentity);
2744
3782
  }
2745
3783
  const hashContributorRole = 'contributorRole';
2746
3784
  function isContributorRole(v) {
2747
- return is$typed$a(v, id$a, hashContributorRole);
3785
+ return is$typed$c(v, id$c, hashContributorRole);
2748
3786
  }
2749
3787
  function validateContributorRole(v) {
2750
- return validate$a(v, id$a, hashContributorRole);
3788
+ return validate$c(v, id$c, hashContributorRole);
2751
3789
  }
2752
3790
  const hashWorkScopeString = 'workScopeString';
2753
3791
  function isWorkScopeString(v) {
2754
- return is$typed$a(v, id$a, hashWorkScopeString);
3792
+ return is$typed$c(v, id$c, hashWorkScopeString);
2755
3793
  }
2756
3794
  function validateWorkScopeString(v) {
2757
- return validate$a(v, id$a, hashWorkScopeString);
3795
+ return validate$c(v, id$c, hashWorkScopeString);
2758
3796
  }
2759
3797
 
2760
3798
  var activity = /*#__PURE__*/Object.freeze({
@@ -2762,19 +3800,55 @@ var activity = /*#__PURE__*/Object.freeze({
2762
3800
  isContributor: isContributor,
2763
3801
  isContributorIdentity: isContributorIdentity,
2764
3802
  isContributorRole: isContributorRole,
2765
- isMain: isMain$9,
2766
- isRecord: isMain$9,
3803
+ isMain: isMain$b,
3804
+ isRecord: isMain$b,
2767
3805
  isWorkScopeString: isWorkScopeString,
2768
3806
  validateContributor: validateContributor,
2769
3807
  validateContributorIdentity: validateContributorIdentity,
2770
3808
  validateContributorRole: validateContributorRole,
2771
- validateMain: validateMain$9,
2772
- validateRecord: validateMain$9,
3809
+ validateMain: validateMain$b,
3810
+ validateRecord: validateMain$b,
2773
3811
  validateWorkScopeString: validateWorkScopeString
2774
3812
  });
2775
3813
 
2776
- const is$typed$9 = is$typed$i, validate$9 = validate$i;
2777
- const id$9 = 'org.hypercerts.claim.attachment';
3814
+ const is$typed$b = is$typed$n, validate$b = validate$n;
3815
+ const id$b = 'org.hypercerts.claim.contribution';
3816
+ const hashMain$a = 'main';
3817
+ function isMain$a(v) {
3818
+ return is$typed$b(v, id$b, hashMain$a);
3819
+ }
3820
+ function validateMain$a(v) {
3821
+ return validate$b(v, id$b, hashMain$a, true);
3822
+ }
3823
+
3824
+ var contribution = /*#__PURE__*/Object.freeze({
3825
+ __proto__: null,
3826
+ isMain: isMain$a,
3827
+ isRecord: isMain$a,
3828
+ validateMain: validateMain$a,
3829
+ validateRecord: validateMain$a
3830
+ });
3831
+
3832
+ const is$typed$a = is$typed$n, validate$a = validate$n;
3833
+ const id$a = 'org.hypercerts.claim.contributorInformation';
3834
+ const hashMain$9 = 'main';
3835
+ function isMain$9(v) {
3836
+ return is$typed$a(v, id$a, hashMain$9);
3837
+ }
3838
+ function validateMain$9(v) {
3839
+ return validate$a(v, id$a, hashMain$9, true);
3840
+ }
3841
+
3842
+ var contributorInformation = /*#__PURE__*/Object.freeze({
3843
+ __proto__: null,
3844
+ isMain: isMain$9,
3845
+ isRecord: isMain$9,
3846
+ validateMain: validateMain$9,
3847
+ validateRecord: validateMain$9
3848
+ });
3849
+
3850
+ const is$typed$9 = is$typed$n, validate$9 = validate$n;
3851
+ const id$9 = 'org.hypercerts.claim.rights';
2778
3852
  const hashMain$8 = 'main';
2779
3853
  function isMain$8(v) {
2780
3854
  return is$typed$9(v, id$9, hashMain$8);
@@ -2783,7 +3857,7 @@ function validateMain$8(v) {
2783
3857
  return validate$9(v, id$9, hashMain$8, true);
2784
3858
  }
2785
3859
 
2786
- var attachment = /*#__PURE__*/Object.freeze({
3860
+ var rights = /*#__PURE__*/Object.freeze({
2787
3861
  __proto__: null,
2788
3862
  isMain: isMain$8,
2789
3863
  isRecord: isMain$8,
@@ -2791,8 +3865,8 @@ var attachment = /*#__PURE__*/Object.freeze({
2791
3865
  validateRecord: validateMain$8
2792
3866
  });
2793
3867
 
2794
- const is$typed$8 = is$typed$i, validate$8 = validate$i;
2795
- const id$8 = 'org.hypercerts.claim.collection';
3868
+ const is$typed$8 = is$typed$n, validate$8 = validate$n;
3869
+ const id$8 = 'org.hypercerts.collection';
2796
3870
  const hashMain$7 = 'main';
2797
3871
  function isMain$7(v) {
2798
3872
  return is$typed$8(v, id$8, hashMain$7);
@@ -2818,8 +3892,8 @@ var collection = /*#__PURE__*/Object.freeze({
2818
3892
  validateRecord: validateMain$7
2819
3893
  });
2820
3894
 
2821
- const is$typed$7 = is$typed$i, validate$7 = validate$i;
2822
- const id$7 = 'org.hypercerts.claim.contributionDetails';
3895
+ const is$typed$7 = is$typed$n, validate$7 = validate$n;
3896
+ const id$7 = 'org.hypercerts.context.acknowledgement';
2823
3897
  const hashMain$6 = 'main';
2824
3898
  function isMain$6(v) {
2825
3899
  return is$typed$7(v, id$7, hashMain$6);
@@ -2828,7 +3902,7 @@ function validateMain$6(v) {
2828
3902
  return validate$7(v, id$7, hashMain$6, true);
2829
3903
  }
2830
3904
 
2831
- var contributionDetails = /*#__PURE__*/Object.freeze({
3905
+ var acknowledgement = /*#__PURE__*/Object.freeze({
2832
3906
  __proto__: null,
2833
3907
  isMain: isMain$6,
2834
3908
  isRecord: isMain$6,
@@ -2836,8 +3910,8 @@ var contributionDetails = /*#__PURE__*/Object.freeze({
2836
3910
  validateRecord: validateMain$6
2837
3911
  });
2838
3912
 
2839
- const is$typed$6 = is$typed$i, validate$6 = validate$i;
2840
- const id$6 = 'org.hypercerts.claim.contributorInformation';
3913
+ const is$typed$6 = is$typed$n, validate$6 = validate$n;
3914
+ const id$6 = 'org.hypercerts.context.attachment';
2841
3915
  const hashMain$5 = 'main';
2842
3916
  function isMain$5(v) {
2843
3917
  return is$typed$6(v, id$6, hashMain$5);
@@ -2846,7 +3920,7 @@ function validateMain$5(v) {
2846
3920
  return validate$6(v, id$6, hashMain$5, true);
2847
3921
  }
2848
3922
 
2849
- var contributorInformation = /*#__PURE__*/Object.freeze({
3923
+ var attachment = /*#__PURE__*/Object.freeze({
2850
3924
  __proto__: null,
2851
3925
  isMain: isMain$5,
2852
3926
  isRecord: isMain$5,
@@ -2854,15 +3928,8 @@ var contributorInformation = /*#__PURE__*/Object.freeze({
2854
3928
  validateRecord: validateMain$5
2855
3929
  });
2856
3930
 
2857
- const is$typed$5 = is$typed$i, validate$5 = validate$i;
2858
- const id$5 = 'org.hypercerts.claim.evaluation';
2859
- const hashScore = 'score';
2860
- function isScore(v) {
2861
- return is$typed$5(v, id$5, hashScore);
2862
- }
2863
- function validateScore(v) {
2864
- return validate$5(v, id$5, hashScore);
2865
- }
3931
+ const is$typed$5 = is$typed$n, validate$5 = validate$n;
3932
+ const id$5 = 'org.hypercerts.context.evaluation';
2866
3933
  const hashMain$4 = 'main';
2867
3934
  function isMain$4(v) {
2868
3935
  return is$typed$5(v, id$5, hashMain$4);
@@ -2870,6 +3937,13 @@ function isMain$4(v) {
2870
3937
  function validateMain$4(v) {
2871
3938
  return validate$5(v, id$5, hashMain$4, true);
2872
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
+ }
2873
3947
 
2874
3948
  var evaluation = /*#__PURE__*/Object.freeze({
2875
3949
  __proto__: null,
@@ -2881,8 +3955,8 @@ var evaluation = /*#__PURE__*/Object.freeze({
2881
3955
  validateScore: validateScore
2882
3956
  });
2883
3957
 
2884
- const is$typed$4 = is$typed$i, validate$4 = validate$i;
2885
- 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';
2886
3960
  const hashMain$3 = 'main';
2887
3961
  function isMain$3(v) {
2888
3962
  return is$typed$4(v, id$4, hashMain$3);
@@ -2899,60 +3973,49 @@ var measurement = /*#__PURE__*/Object.freeze({
2899
3973
  validateRecord: validateMain$3
2900
3974
  });
2901
3975
 
2902
- const is$typed$3 = is$typed$i, validate$3 = validate$i;
2903
- const id$3 = 'org.hypercerts.claim.rights';
2904
- const hashMain$2 = 'main';
2905
- function isMain$2(v) {
2906
- return is$typed$3(v, id$3, hashMain$2);
2907
- }
2908
- function validateMain$2(v) {
2909
- return validate$3(v, id$3, hashMain$2, true);
2910
- }
2911
-
2912
- var rights = /*#__PURE__*/Object.freeze({
2913
- __proto__: null,
2914
- isMain: isMain$2,
2915
- isRecord: isMain$2,
2916
- validateMain: validateMain$2,
2917
- validateRecord: validateMain$2
2918
- });
2919
-
2920
- const is$typed$2 = is$typed$i, validate$2 = validate$i;
2921
- 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';
2922
3978
  const hashUri = 'uri';
2923
3979
  function isUri(v) {
2924
- return is$typed$2(v, id$2, hashUri);
3980
+ return is$typed$3(v, id$3, hashUri);
2925
3981
  }
2926
3982
  function validateUri(v) {
2927
- return validate$2(v, id$2, hashUri);
3983
+ return validate$3(v, id$3, hashUri);
2928
3984
  }
2929
3985
  const hashSmallBlob = 'smallBlob';
2930
3986
  function isSmallBlob(v) {
2931
- return is$typed$2(v, id$2, hashSmallBlob);
3987
+ return is$typed$3(v, id$3, hashSmallBlob);
2932
3988
  }
2933
3989
  function validateSmallBlob(v) {
2934
- return validate$2(v, id$2, hashSmallBlob);
3990
+ return validate$3(v, id$3, hashSmallBlob);
2935
3991
  }
2936
3992
  const hashLargeBlob = 'largeBlob';
2937
3993
  function isLargeBlob(v) {
2938
- return is$typed$2(v, id$2, hashLargeBlob);
3994
+ return is$typed$3(v, id$3, hashLargeBlob);
2939
3995
  }
2940
3996
  function validateLargeBlob(v) {
2941
- return validate$2(v, id$2, hashLargeBlob);
3997
+ return validate$3(v, id$3, hashLargeBlob);
2942
3998
  }
2943
3999
  const hashSmallImage = 'smallImage';
2944
4000
  function isSmallImage(v) {
2945
- return is$typed$2(v, id$2, hashSmallImage);
4001
+ return is$typed$3(v, id$3, hashSmallImage);
2946
4002
  }
2947
4003
  function validateSmallImage(v) {
2948
- 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);
2949
4012
  }
2950
4013
  const hashLargeImage = 'largeImage';
2951
4014
  function isLargeImage(v) {
2952
- return is$typed$2(v, id$2, hashLargeImage);
4015
+ return is$typed$3(v, id$3, hashLargeImage);
2953
4016
  }
2954
4017
  function validateLargeImage(v) {
2955
- return validate$2(v, id$2, hashLargeImage);
4018
+ return validate$3(v, id$3, hashLargeImage);
2956
4019
  }
2957
4020
 
2958
4021
  var defs = /*#__PURE__*/Object.freeze({
@@ -2961,34 +4024,52 @@ var defs = /*#__PURE__*/Object.freeze({
2961
4024
  isLargeImage: isLargeImage,
2962
4025
  isSmallBlob: isSmallBlob,
2963
4026
  isSmallImage: isSmallImage,
4027
+ isSmallVideo: isSmallVideo,
2964
4028
  isUri: isUri,
2965
4029
  validateLargeBlob: validateLargeBlob,
2966
4030
  validateLargeImage: validateLargeImage,
2967
4031
  validateSmallBlob: validateSmallBlob,
2968
4032
  validateSmallImage: validateSmallImage,
4033
+ validateSmallVideo: validateSmallVideo,
2969
4034
  validateUri: validateUri
2970
4035
  });
2971
4036
 
2972
- const is$typed$1 = is$typed$i, validate$1 = validate$i;
2973
- const id$1 = 'org.hypercerts.funding.receipt';
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
4053
+ });
4054
+
4055
+ const is$typed$1 = is$typed$n, validate$1 = validate$n;
4056
+ const id$1 = 'org.hypercerts.workscope.cel';
2974
4057
  const hashMain$1 = 'main';
2975
4058
  function isMain$1(v) {
2976
4059
  return is$typed$1(v, id$1, hashMain$1);
2977
4060
  }
2978
4061
  function validateMain$1(v) {
2979
- return validate$1(v, id$1, hashMain$1, true);
4062
+ return validate$1(v, id$1, hashMain$1);
2980
4063
  }
2981
4064
 
2982
- var receipt = /*#__PURE__*/Object.freeze({
4065
+ var cel = /*#__PURE__*/Object.freeze({
2983
4066
  __proto__: null,
2984
4067
  isMain: isMain$1,
2985
- isRecord: isMain$1,
2986
- validateMain: validateMain$1,
2987
- validateRecord: validateMain$1
4068
+ validateMain: validateMain$1
2988
4069
  });
2989
4070
 
2990
- const is$typed = is$typed$i, validate = validate$i;
2991
- const id = 'org.hypercerts.helper.workScopeTag';
4071
+ const is$typed = is$typed$n, validate = validate$n;
4072
+ const id = 'org.hypercerts.workscope.tag';
2992
4073
  const hashMain = 'main';
2993
4074
  function isMain(v) {
2994
4075
  return is$typed(v, id, hashMain);
@@ -2997,7 +4078,7 @@ function validateMain(v) {
2997
4078
  return validate(v, id, hashMain, true);
2998
4079
  }
2999
4080
 
3000
- var workScopeTag = /*#__PURE__*/Object.freeze({
4081
+ var tag = /*#__PURE__*/Object.freeze({
3001
4082
  __proto__: null,
3002
4083
  isMain: isMain,
3003
4084
  isRecord: isMain,
@@ -3011,7 +4092,7 @@ var workScopeTag = /*#__PURE__*/Object.freeze({
3011
4092
  * ⚠️ DO NOT EDIT THIS FILE MANUALLY ⚠️
3012
4093
  *
3013
4094
  * This file is automatically generated by scripts/generate-exports.js
3014
- * Generated: 2026-02-10T10:47:30.525Z
4095
+ * Generated: 2026-03-02T17:51:18.002Z
3015
4096
  *
3016
4097
  * To regenerate this file, run:
3017
4098
  * npm run gen-api
@@ -3028,6 +4109,7 @@ var workScopeTag = /*#__PURE__*/Object.freeze({
3028
4109
  * @packageDocumentation
3029
4110
  */
3030
4111
  // Individual NSID constants
4112
+ const ACTOR_ORGANIZATION_NSID = "app.certified.actor.organization";
3031
4113
  const ACTOR_PROFILE_NSID = "app.certified.actor.profile";
3032
4114
  const BADGE_AWARD_NSID = "app.certified.badge.award";
3033
4115
  const BADGE_DEFINITION_NSID = "app.certified.badge.definition";
@@ -3035,17 +4117,21 @@ const BADGE_RESPONSE_NSID = "app.certified.badge.response";
3035
4117
  const CERTIFIED_DEFS_NSID = "app.certified.defs";
3036
4118
  const LOCATION_NSID = "app.certified.location";
3037
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";
3038
4122
  const ACTIVITY_NSID = "org.hypercerts.claim.activity";
3039
- const ATTACHMENT_NSID = "org.hypercerts.claim.attachment";
3040
- const COLLECTION_NSID = "org.hypercerts.claim.collection";
3041
- const CONTRIBUTION_DETAILS_NSID = "org.hypercerts.claim.contributionDetails";
4123
+ const CONTRIBUTION_NSID = "org.hypercerts.claim.contribution";
3042
4124
  const CONTRIBUTOR_INFORMATION_NSID = "org.hypercerts.claim.contributorInformation";
3043
- const EVALUATION_NSID = "org.hypercerts.claim.evaluation";
3044
- const MEASUREMENT_NSID = "org.hypercerts.claim.measurement";
3045
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";
3046
4131
  const HYPERCERTS_DEFS_NSID = "org.hypercerts.defs";
3047
4132
  const FUNDING_RECEIPT_NSID = "org.hypercerts.funding.receipt";
3048
- const 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";
3049
4135
  /**
3050
4136
  * Collection NSIDs organized by semantic record type.
3051
4137
  *
@@ -3053,6 +4139,7 @@ const WORK_SCOPE_TAG_NSID = "org.hypercerts.helper.workScopeTag";
3053
4139
  * correct collection names.
3054
4140
  */
3055
4141
  const HYPERCERTS_NSIDS = {
4142
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_NSID,
3056
4143
  ACTOR_PROFILE: ACTOR_PROFILE_NSID,
3057
4144
  BADGE_AWARD: BADGE_AWARD_NSID,
3058
4145
  BADGE_DEFINITION: BADGE_DEFINITION_NSID,
@@ -3060,22 +4147,27 @@ const HYPERCERTS_NSIDS = {
3060
4147
  CERTIFIED_DEFS: CERTIFIED_DEFS_NSID,
3061
4148
  LOCATION: LOCATION_NSID,
3062
4149
  STRONG_REF: STRONG_REF_NSID,
4150
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_NSID,
4151
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_NSID,
3063
4152
  ACTIVITY: ACTIVITY_NSID,
3064
- ATTACHMENT: ATTACHMENT_NSID,
3065
- COLLECTION: COLLECTION_NSID,
3066
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_NSID,
4153
+ CONTRIBUTION: CONTRIBUTION_NSID,
3067
4154
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_NSID,
3068
- EVALUATION: EVALUATION_NSID,
3069
- MEASUREMENT: MEASUREMENT_NSID,
3070
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,
3071
4161
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_NSID,
3072
4162
  FUNDING_RECEIPT: FUNDING_RECEIPT_NSID,
3073
- WORK_SCOPE_TAG: WORK_SCOPE_TAG_NSID,
4163
+ WORKSCOPE_CEL: WORKSCOPE_CEL_NSID,
4164
+ WORKSCOPE_TAG: WORKSCOPE_TAG_NSID,
3074
4165
  };
3075
4166
  /**
3076
4167
  * Lexicon JSON objects organized by semantic record type.
3077
4168
  */
3078
4169
  const HYPERCERTS_LEXICON_JSON = {
4170
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_LEXICON_JSON,
3079
4171
  ACTOR_PROFILE: ACTOR_PROFILE_LEXICON_JSON,
3080
4172
  BADGE_AWARD: BADGE_AWARD_LEXICON_JSON,
3081
4173
  BADGE_DEFINITION: BADGE_DEFINITION_LEXICON_JSON,
@@ -3083,19 +4175,24 @@ const HYPERCERTS_LEXICON_JSON = {
3083
4175
  CERTIFIED_DEFS: CERTIFIED_DEFS_LEXICON_JSON,
3084
4176
  LOCATION: LOCATION_LEXICON_JSON,
3085
4177
  STRONG_REF: STRONG_REF_LEXICON_JSON,
4178
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_LEXICON_JSON,
4179
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_LEXICON_JSON,
3086
4180
  ACTIVITY: ACTIVITY_LEXICON_JSON,
3087
- ATTACHMENT: ATTACHMENT_LEXICON_JSON,
3088
- COLLECTION: COLLECTION_LEXICON_JSON,
3089
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_LEXICON_JSON,
4181
+ CONTRIBUTION: CONTRIBUTION_LEXICON_JSON,
3090
4182
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_LEXICON_JSON,
3091
- EVALUATION: EVALUATION_LEXICON_JSON,
3092
- MEASUREMENT: MEASUREMENT_LEXICON_JSON,
3093
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,
3094
4189
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_LEXICON_JSON,
3095
4190
  FUNDING_RECEIPT: FUNDING_RECEIPT_LEXICON_JSON,
3096
- WORK_SCOPE_TAG: WORK_SCOPE_TAG_LEXICON_JSON,
4191
+ WORKSCOPE_CEL: WORKSCOPE_CEL_LEXICON_JSON,
4192
+ WORKSCOPE_TAG: WORKSCOPE_TAG_LEXICON_JSON,
3097
4193
  };
3098
4194
  // Individual lexicon objects (from lexicons.get())
4195
+ const ACTOR_ORGANIZATION_LEXICON_DOC = lexicons.get(ACTOR_ORGANIZATION_NSID);
3099
4196
  const ACTOR_PROFILE_LEXICON_DOC = lexicons.get(ACTOR_PROFILE_NSID);
3100
4197
  const BADGE_AWARD_LEXICON_DOC = lexicons.get(BADGE_AWARD_NSID);
3101
4198
  const BADGE_DEFINITION_LEXICON_DOC = lexicons.get(BADGE_DEFINITION_NSID);
@@ -3103,21 +4200,26 @@ const BADGE_RESPONSE_LEXICON_DOC = lexicons.get(BADGE_RESPONSE_NSID);
3103
4200
  const CERTIFIED_DEFS_LEXICON_DOC = lexicons.get(CERTIFIED_DEFS_NSID);
3104
4201
  const LOCATION_LEXICON_DOC = lexicons.get(LOCATION_NSID);
3105
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);
3106
4205
  const ACTIVITY_LEXICON_DOC = lexicons.get(ACTIVITY_NSID);
3107
- const ATTACHMENT_LEXICON_DOC = lexicons.get(ATTACHMENT_NSID);
3108
- const COLLECTION_LEXICON_DOC = lexicons.get(COLLECTION_NSID);
3109
- const CONTRIBUTION_DETAILS_LEXICON_DOC = lexicons.get(CONTRIBUTION_DETAILS_NSID);
4206
+ const CONTRIBUTION_LEXICON_DOC = lexicons.get(CONTRIBUTION_NSID);
3110
4207
  const CONTRIBUTOR_INFORMATION_LEXICON_DOC = lexicons.get(CONTRIBUTOR_INFORMATION_NSID);
3111
- const EVALUATION_LEXICON_DOC = lexicons.get(EVALUATION_NSID);
3112
- const MEASUREMENT_LEXICON_DOC = lexicons.get(MEASUREMENT_NSID);
3113
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);
3114
4214
  const HYPERCERTS_DEFS_LEXICON_DOC = lexicons.get(HYPERCERTS_DEFS_NSID);
3115
4215
  const FUNDING_RECEIPT_LEXICON_DOC = lexicons.get(FUNDING_RECEIPT_NSID);
3116
- const WORK_SCOPE_TAG_LEXICON_DOC = lexicons.get(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);
3117
4218
  /**
3118
4219
  * Lexicon document objects organized by semantic record type.
3119
4220
  */
3120
4221
  const HYPERCERTS_LEXICON_DOC = {
4222
+ ACTOR_ORGANIZATION: ACTOR_ORGANIZATION_LEXICON_DOC,
3121
4223
  ACTOR_PROFILE: ACTOR_PROFILE_LEXICON_DOC,
3122
4224
  BADGE_AWARD: BADGE_AWARD_LEXICON_DOC,
3123
4225
  BADGE_DEFINITION: BADGE_DEFINITION_LEXICON_DOC,
@@ -3125,18 +4227,22 @@ const HYPERCERTS_LEXICON_DOC = {
3125
4227
  CERTIFIED_DEFS: CERTIFIED_DEFS_LEXICON_DOC,
3126
4228
  LOCATION: LOCATION_LEXICON_DOC,
3127
4229
  STRONG_REF: STRONG_REF_LEXICON_DOC,
4230
+ HYPERBOARDS_BOARD: HYPERBOARDS_BOARD_LEXICON_DOC,
4231
+ HYPERBOARDS_DISPLAY_PROFILE: HYPERBOARDS_DISPLAY_PROFILE_LEXICON_DOC,
3128
4232
  ACTIVITY: ACTIVITY_LEXICON_DOC,
3129
- ATTACHMENT: ATTACHMENT_LEXICON_DOC,
3130
- COLLECTION: COLLECTION_LEXICON_DOC,
3131
- CONTRIBUTION_DETAILS: CONTRIBUTION_DETAILS_LEXICON_DOC,
4233
+ CONTRIBUTION: CONTRIBUTION_LEXICON_DOC,
3132
4234
  CONTRIBUTOR_INFORMATION: CONTRIBUTOR_INFORMATION_LEXICON_DOC,
3133
- EVALUATION: EVALUATION_LEXICON_DOC,
3134
- MEASUREMENT: MEASUREMENT_LEXICON_DOC,
3135
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,
3136
4241
  HYPERCERTS_DEFS: HYPERCERTS_DEFS_LEXICON_DOC,
3137
4242
  FUNDING_RECEIPT: FUNDING_RECEIPT_LEXICON_DOC,
3138
- WORK_SCOPE_TAG: WORK_SCOPE_TAG_LEXICON_DOC,
4243
+ WORKSCOPE_CEL: WORKSCOPE_CEL_LEXICON_DOC,
4244
+ WORKSCOPE_TAG: WORKSCOPE_TAG_LEXICON_DOC,
3139
4245
  };
3140
4246
 
3141
- export { ACTIVITY_LEXICON_DOC, ACTIVITY_LEXICON_JSON, ACTIVITY_NSID, ACTOR_PROFILE_LEXICON_DOC, ACTOR_PROFILE_LEXICON_JSON, ACTOR_PROFILE_NSID, ATTACHMENT_LEXICON_DOC, ATTACHMENT_LEXICON_JSON, ATTACHMENT_NSID, 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, 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, FUNDING_RECEIPT_LEXICON_DOC, FUNDING_RECEIPT_LEXICON_JSON, FUNDING_RECEIPT_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, attachment as OrgHypercertsClaimAttachment, collection as OrgHypercertsClaimCollection, contributionDetails as OrgHypercertsClaimContributionDetails, contributorInformation as OrgHypercertsClaimContributorInformation, evaluation as OrgHypercertsClaimEvaluation, 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, WORK_SCOPE_TAG_LEXICON_DOC, WORK_SCOPE_TAG_LEXICON_JSON, WORK_SCOPE_TAG_NSID, asPredicate, is$typed$i as is$typed, lexicons, maybe$typed, validate$i 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 };
3142
4248
  //# sourceMappingURL=index.mjs.map