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