@hypercerts-org/lexicon 0.10.0 → 0.11.1

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 (161) hide show
  1. package/CHANGELOG.md +218 -0
  2. package/README.md +392 -393
  3. package/SCHEMAS.md +539 -81
  4. package/dist/exports.d.ts +900 -10
  5. package/dist/exports.d.ts.map +1 -1
  6. package/dist/generated/exports.d.ts +900 -10
  7. package/dist/generated/exports.d.ts.map +1 -1
  8. package/dist/generated/lexicons.d.ts +2684 -1094
  9. package/dist/generated/lexicons.d.ts.map +1 -1
  10. package/dist/generated/types/app/bsky/richtext/facet.d.ts +44 -7
  11. package/dist/generated/types/app/bsky/richtext/facet.d.ts.map +1 -1
  12. package/dist/generated/types/app/certified/badge/award.d.ts +2 -3
  13. package/dist/generated/types/app/certified/badge/award.d.ts.map +1 -1
  14. package/dist/generated/types/app/certified/badge/definition.d.ts +3 -3
  15. package/dist/generated/types/app/certified/badge/definition.d.ts.map +1 -1
  16. package/dist/generated/types/app/certified/badge/response.d.ts +2 -2
  17. package/dist/generated/types/app/certified/badge/response.d.ts.map +1 -1
  18. package/dist/generated/types/app/certified/link/evm.d.ts +45 -0
  19. package/dist/generated/types/app/certified/link/evm.d.ts.map +1 -0
  20. package/dist/generated/types/org/hypercerts/claim/activity.d.ts +6 -3
  21. package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  22. package/dist/generated/types/org/hypercerts/collection.d.ts +11 -5
  23. package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -1
  24. package/dist/generated/types/org/hypercerts/context/attachment.d.ts +5 -3
  25. package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -1
  26. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts +6 -6
  27. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -1
  28. package/dist/generated/types/org/hypercerts/defs.d.ts +11 -0
  29. package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
  30. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +17 -5
  31. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  32. package/dist/generated/types/pub/leaflet/blocks/blockquote.d.ts +13 -0
  33. package/dist/generated/types/pub/leaflet/blocks/blockquote.d.ts.map +1 -0
  34. package/dist/generated/types/pub/leaflet/blocks/bskyPost.d.ts +13 -0
  35. package/dist/generated/types/pub/leaflet/blocks/bskyPost.d.ts.map +1 -0
  36. package/dist/generated/types/pub/leaflet/blocks/button.d.ts +12 -0
  37. package/dist/generated/types/pub/leaflet/blocks/button.d.ts.map +1 -0
  38. package/dist/generated/types/pub/leaflet/blocks/code.d.ts +13 -0
  39. package/dist/generated/types/pub/leaflet/blocks/code.d.ts.map +1 -0
  40. package/dist/generated/types/pub/leaflet/blocks/header.d.ts +14 -0
  41. package/dist/generated/types/pub/leaflet/blocks/header.d.ts.map +1 -0
  42. package/dist/generated/types/pub/leaflet/blocks/horizontalRule.d.ts +10 -0
  43. package/dist/generated/types/pub/leaflet/blocks/horizontalRule.d.ts.map +1 -0
  44. package/dist/generated/types/pub/leaflet/blocks/iframe.d.ts +12 -0
  45. package/dist/generated/types/pub/leaflet/blocks/iframe.d.ts.map +1 -0
  46. package/dist/generated/types/pub/leaflet/blocks/image.d.ts +21 -0
  47. package/dist/generated/types/pub/leaflet/blocks/image.d.ts.map +1 -0
  48. package/dist/generated/types/pub/leaflet/blocks/math.d.ts +11 -0
  49. package/dist/generated/types/pub/leaflet/blocks/math.d.ts.map +1 -0
  50. package/dist/generated/types/pub/leaflet/blocks/orderedList.d.ts +31 -0
  51. package/dist/generated/types/pub/leaflet/blocks/orderedList.d.ts.map +1 -0
  52. package/dist/generated/types/pub/leaflet/blocks/page.d.ts +11 -0
  53. package/dist/generated/types/pub/leaflet/blocks/page.d.ts.map +1 -0
  54. package/dist/generated/types/pub/leaflet/blocks/poll.d.ts +12 -0
  55. package/dist/generated/types/pub/leaflet/blocks/poll.d.ts.map +1 -0
  56. package/dist/generated/types/pub/leaflet/blocks/text.d.ts +14 -0
  57. package/dist/generated/types/pub/leaflet/blocks/text.d.ts.map +1 -0
  58. package/dist/generated/types/pub/leaflet/blocks/unorderedList.d.ts +29 -0
  59. package/dist/generated/types/pub/leaflet/blocks/unorderedList.d.ts.map +1 -0
  60. package/dist/generated/types/pub/leaflet/blocks/website.d.ts +14 -0
  61. package/dist/generated/types/pub/leaflet/blocks/website.d.ts.map +1 -0
  62. package/dist/generated/types/pub/leaflet/pages/linearDocument.d.ts +54 -1
  63. package/dist/generated/types/pub/leaflet/pages/linearDocument.d.ts.map +1 -1
  64. package/dist/generated/types/pub/leaflet/richtext/facet.d.ts +97 -0
  65. package/dist/generated/types/pub/leaflet/richtext/facet.d.ts.map +1 -0
  66. package/dist/index.cjs +4487 -1808
  67. package/dist/index.cjs.map +1 -1
  68. package/dist/index.mjs +4408 -1805
  69. package/dist/index.mjs.map +1 -1
  70. package/dist/lexicons.cjs +928 -36
  71. package/dist/lexicons.cjs.map +1 -1
  72. package/dist/lexicons.d.ts +2684 -1094
  73. package/dist/lexicons.d.ts.map +1 -1
  74. package/dist/lexicons.mjs +928 -36
  75. package/dist/lexicons.mjs.map +1 -1
  76. package/dist/types/app/bsky/richtext/facet.d.ts +44 -7
  77. package/dist/types/app/bsky/richtext/facet.d.ts.map +1 -1
  78. package/dist/types/app/certified/badge/award.d.ts +2 -3
  79. package/dist/types/app/certified/badge/award.d.ts.map +1 -1
  80. package/dist/types/app/certified/badge/definition.d.ts +3 -3
  81. package/dist/types/app/certified/badge/definition.d.ts.map +1 -1
  82. package/dist/types/app/certified/badge/response.d.ts +2 -2
  83. package/dist/types/app/certified/badge/response.d.ts.map +1 -1
  84. package/dist/types/app/certified/link/evm.d.ts +45 -0
  85. package/dist/types/app/certified/link/evm.d.ts.map +1 -0
  86. package/dist/types/org/hypercerts/claim/activity.d.ts +6 -3
  87. package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  88. package/dist/types/org/hypercerts/collection.d.ts +11 -5
  89. package/dist/types/org/hypercerts/collection.d.ts.map +1 -1
  90. package/dist/types/org/hypercerts/context/attachment.d.ts +5 -3
  91. package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -1
  92. package/dist/types/org/hypercerts/context/evaluation.d.ts +6 -6
  93. package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -1
  94. package/dist/types/org/hypercerts/defs.d.ts +11 -0
  95. package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
  96. package/dist/types/org/hypercerts/funding/receipt.d.ts +17 -5
  97. package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  98. package/dist/types/pub/leaflet/blocks/blockquote.d.ts +13 -0
  99. package/dist/types/pub/leaflet/blocks/blockquote.d.ts.map +1 -0
  100. package/dist/types/pub/leaflet/blocks/bskyPost.d.ts +13 -0
  101. package/dist/types/pub/leaflet/blocks/bskyPost.d.ts.map +1 -0
  102. package/dist/types/pub/leaflet/blocks/button.d.ts +12 -0
  103. package/dist/types/pub/leaflet/blocks/button.d.ts.map +1 -0
  104. package/dist/types/pub/leaflet/blocks/code.d.ts +13 -0
  105. package/dist/types/pub/leaflet/blocks/code.d.ts.map +1 -0
  106. package/dist/types/pub/leaflet/blocks/header.d.ts +14 -0
  107. package/dist/types/pub/leaflet/blocks/header.d.ts.map +1 -0
  108. package/dist/types/pub/leaflet/blocks/horizontalRule.d.ts +10 -0
  109. package/dist/types/pub/leaflet/blocks/horizontalRule.d.ts.map +1 -0
  110. package/dist/types/pub/leaflet/blocks/iframe.d.ts +12 -0
  111. package/dist/types/pub/leaflet/blocks/iframe.d.ts.map +1 -0
  112. package/dist/types/pub/leaflet/blocks/image.d.ts +21 -0
  113. package/dist/types/pub/leaflet/blocks/image.d.ts.map +1 -0
  114. package/dist/types/pub/leaflet/blocks/math.d.ts +11 -0
  115. package/dist/types/pub/leaflet/blocks/math.d.ts.map +1 -0
  116. package/dist/types/pub/leaflet/blocks/orderedList.d.ts +31 -0
  117. package/dist/types/pub/leaflet/blocks/orderedList.d.ts.map +1 -0
  118. package/dist/types/pub/leaflet/blocks/page.d.ts +11 -0
  119. package/dist/types/pub/leaflet/blocks/page.d.ts.map +1 -0
  120. package/dist/types/pub/leaflet/blocks/poll.d.ts +12 -0
  121. package/dist/types/pub/leaflet/blocks/poll.d.ts.map +1 -0
  122. package/dist/types/pub/leaflet/blocks/text.d.ts +14 -0
  123. package/dist/types/pub/leaflet/blocks/text.d.ts.map +1 -0
  124. package/dist/types/pub/leaflet/blocks/unorderedList.d.ts +29 -0
  125. package/dist/types/pub/leaflet/blocks/unorderedList.d.ts.map +1 -0
  126. package/dist/types/pub/leaflet/blocks/website.d.ts +14 -0
  127. package/dist/types/pub/leaflet/blocks/website.d.ts.map +1 -0
  128. package/dist/types/pub/leaflet/pages/linearDocument.d.ts +54 -1
  129. package/dist/types/pub/leaflet/pages/linearDocument.d.ts.map +1 -1
  130. package/dist/types/pub/leaflet/richtext/facet.d.ts +97 -0
  131. package/dist/types/pub/leaflet/richtext/facet.d.ts.map +1 -0
  132. package/lexicons/app/bsky/richtext/facet.json +51 -0
  133. package/lexicons/app/certified/badge/award.json +2 -2
  134. package/lexicons/app/certified/badge/definition.json +10 -2
  135. package/lexicons/app/certified/badge/response.json +2 -2
  136. package/lexicons/app/certified/link/evm.json +88 -0
  137. package/lexicons/org/hyperboards/board.json +1 -1
  138. package/lexicons/org/hypercerts/claim/activity.json +8 -4
  139. package/lexicons/org/hypercerts/collection.json +19 -5
  140. package/lexicons/org/hypercerts/context/attachment.json +16 -5
  141. package/lexicons/org/hypercerts/context/evaluation.json +9 -6
  142. package/lexicons/org/hypercerts/defs.json +21 -0
  143. package/lexicons/org/hypercerts/funding/receipt.json +30 -10
  144. package/lexicons/pub/leaflet/blocks/blockquote.json +22 -0
  145. package/lexicons/pub/leaflet/blocks/bskyPost.json +19 -0
  146. package/lexicons/pub/leaflet/blocks/button.json +19 -0
  147. package/lexicons/pub/leaflet/blocks/code.json +21 -0
  148. package/lexicons/pub/leaflet/blocks/header.json +27 -0
  149. package/lexicons/pub/leaflet/blocks/horizontalRule.json +11 -0
  150. package/lexicons/pub/leaflet/blocks/iframe.json +21 -0
  151. package/lexicons/pub/leaflet/blocks/image.json +37 -0
  152. package/lexicons/pub/leaflet/blocks/math.json +15 -0
  153. package/lexicons/pub/leaflet/blocks/orderedList.json +54 -0
  154. package/lexicons/pub/leaflet/blocks/page.json +15 -0
  155. package/lexicons/pub/leaflet/blocks/poll.json +16 -0
  156. package/lexicons/pub/leaflet/blocks/text.json +26 -0
  157. package/lexicons/pub/leaflet/blocks/unorderedList.json +50 -0
  158. package/lexicons/pub/leaflet/blocks/website.json +27 -0
  159. package/lexicons/pub/leaflet/pages/linearDocument.json +98 -0
  160. package/lexicons/pub/leaflet/richtext/facet.json +149 -0
  161. package/package.json +5 -5
@@ -3,6 +3,79 @@
3
3
  */
4
4
  import { Lexicons, type ValidationResult } from '@atproto/lexicon';
5
5
  export declare const schemaDict: {
6
+ readonly AppBskyRichtextFacet: {
7
+ readonly lexicon: 1;
8
+ readonly id: "app.bsky.richtext.facet";
9
+ readonly defs: {
10
+ readonly main: {
11
+ readonly type: "object";
12
+ readonly description: "Annotation of a sub-string within rich text.";
13
+ readonly required: ["index", "features"];
14
+ readonly properties: {
15
+ readonly index: {
16
+ readonly type: "ref";
17
+ readonly ref: "lex:app.bsky.richtext.facet#byteSlice";
18
+ };
19
+ readonly features: {
20
+ readonly type: "array";
21
+ readonly items: {
22
+ readonly type: "union";
23
+ readonly refs: ["lex:app.bsky.richtext.facet#mention", "lex:app.bsky.richtext.facet#link", "lex:app.bsky.richtext.facet#tag"];
24
+ };
25
+ };
26
+ };
27
+ };
28
+ readonly mention: {
29
+ readonly type: "object";
30
+ readonly description: "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.";
31
+ readonly required: ["did"];
32
+ readonly properties: {
33
+ readonly did: {
34
+ readonly type: "string";
35
+ readonly format: "did";
36
+ };
37
+ };
38
+ };
39
+ readonly link: {
40
+ readonly type: "object";
41
+ readonly description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.";
42
+ readonly required: ["uri"];
43
+ readonly properties: {
44
+ readonly uri: {
45
+ readonly type: "string";
46
+ readonly format: "uri";
47
+ };
48
+ };
49
+ };
50
+ readonly tag: {
51
+ readonly type: "object";
52
+ readonly description: "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').";
53
+ readonly required: ["tag"];
54
+ readonly properties: {
55
+ readonly tag: {
56
+ readonly type: "string";
57
+ readonly maxLength: 640;
58
+ readonly maxGraphemes: 64;
59
+ };
60
+ };
61
+ };
62
+ readonly byteSlice: {
63
+ readonly type: "object";
64
+ readonly description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.";
65
+ readonly required: ["byteStart", "byteEnd"];
66
+ readonly properties: {
67
+ readonly byteStart: {
68
+ readonly type: "integer";
69
+ readonly minimum: 0;
70
+ };
71
+ readonly byteEnd: {
72
+ readonly type: "integer";
73
+ readonly minimum: 0;
74
+ };
75
+ };
76
+ };
77
+ };
78
+ };
6
79
  readonly AppCertifiedActorOrganization: {
7
80
  readonly lexicon: 1;
8
81
  readonly id: "app.certified.actor.organization";
@@ -142,8 +215,8 @@ export declare const schemaDict: {
142
215
  readonly properties: {
143
216
  readonly badge: {
144
217
  readonly type: "ref";
145
- readonly ref: "lex:app.certified.badge.definition";
146
- readonly description: "Reference to the badge definition for this award.";
218
+ readonly ref: "lex:com.atproto.repo.strongRef";
219
+ readonly description: "Strong reference to the badge definition at the time of award. The record referenced must conform with the lexicon app.certified.badge.definition.";
147
220
  };
148
221
  readonly subject: {
149
222
  readonly type: "union";
@@ -181,11 +254,12 @@ export declare const schemaDict: {
181
254
  readonly key: "tid";
182
255
  readonly record: {
183
256
  readonly type: "object";
184
- readonly required: ["title", "badgeType", "icon", "createdAt"];
257
+ readonly required: ["title", "badgeType", "createdAt"];
185
258
  readonly properties: {
186
259
  readonly badgeType: {
187
260
  readonly type: "string";
188
- readonly description: "Category of the badge (e.g. endorsement, participation, affiliation).";
261
+ readonly description: "Category of the badge. Values beyond the known set are permitted.";
262
+ readonly knownValues: ["endorsement", "verification", "participation", "certification", "affiliation", "recognition"];
189
263
  readonly maxLength: 100;
190
264
  };
191
265
  readonly title: {
@@ -238,8 +312,8 @@ export declare const schemaDict: {
238
312
  readonly properties: {
239
313
  readonly badgeAward: {
240
314
  readonly type: "ref";
241
- readonly ref: "lex:app.certified.badge.award";
242
- readonly description: "Reference to the badge award.";
315
+ readonly ref: "lex:com.atproto.repo.strongRef";
316
+ readonly description: "Strong reference to the badge award being responded to. The record referenced must conform with the lexicon app.certified.badge.award.";
243
317
  };
244
318
  readonly response: {
245
319
  readonly type: "string";
@@ -281,6 +355,94 @@ export declare const schemaDict: {
281
355
  };
282
356
  };
283
357
  };
358
+ readonly AppCertifiedLinkEvm: {
359
+ readonly lexicon: 1;
360
+ readonly id: "app.certified.link.evm";
361
+ readonly defs: {
362
+ readonly main: {
363
+ readonly type: "record";
364
+ readonly description: "A verifiable link between an ATProto DID and an EVM wallet address, proven via a cryptographic signature. Currently supports EOA wallets via EIP-712 typed data signatures; the proof field is an open union to allow future signature methods.";
365
+ readonly key: "any";
366
+ readonly record: {
367
+ readonly type: "object";
368
+ readonly required: ["address", "proof", "createdAt"];
369
+ readonly properties: {
370
+ readonly address: {
371
+ readonly type: "string";
372
+ readonly description: "EVM wallet address (0x-prefixed, with EIP-55 checksum recommended).";
373
+ readonly minLength: 42;
374
+ readonly maxLength: 42;
375
+ };
376
+ readonly proof: {
377
+ readonly type: "union";
378
+ readonly refs: ["lex:app.certified.link.evm#eip712Proof"];
379
+ readonly description: "Cryptographic proof of wallet ownership. The union is open to allow future proof methods (e.g. ERC-1271, ERC-6492). Each variant bundles its signature with the corresponding message format.";
380
+ };
381
+ readonly createdAt: {
382
+ readonly type: "string";
383
+ readonly format: "datetime";
384
+ readonly description: "Client-declared timestamp when this record was originally created.";
385
+ };
386
+ };
387
+ };
388
+ };
389
+ readonly eip712Proof: {
390
+ readonly type: "object";
391
+ readonly description: "EOA wallet ownership proof via EIP-712 typed data signature. Contains both the structured message that was signed and the resulting signature.";
392
+ readonly required: ["signature", "message"];
393
+ readonly properties: {
394
+ readonly signature: {
395
+ readonly type: "string";
396
+ readonly description: "ECDSA signature over the EIP-712 hash (hex-encoded with 0x prefix, 64 or 65 bytes).";
397
+ readonly minLength: 130;
398
+ readonly maxLength: 132;
399
+ };
400
+ readonly message: {
401
+ readonly type: "ref";
402
+ readonly ref: "lex:app.certified.link.evm#eip712Message";
403
+ readonly description: "The EIP-712 structured message fields that were signed.";
404
+ };
405
+ };
406
+ };
407
+ readonly eip712Message: {
408
+ readonly type: "object";
409
+ readonly description: "The EIP-712 typed data message that was signed by the wallet. Contains the fields binding an ATProto DID to an EVM address on a specific chain.";
410
+ readonly required: ["did", "evmAddress", "chainId", "timestamp", "nonce"];
411
+ readonly properties: {
412
+ readonly did: {
413
+ readonly type: "string";
414
+ readonly format: "did";
415
+ readonly description: "The ATProto DID being linked to the EVM address.";
416
+ readonly maxLength: 256;
417
+ };
418
+ readonly evmAddress: {
419
+ readonly type: "string";
420
+ readonly description: "The EVM wallet address (must match the top-level address field).";
421
+ readonly minLength: 42;
422
+ readonly maxLength: 42;
423
+ };
424
+ readonly chainId: {
425
+ readonly type: "string";
426
+ readonly description: "EVM chain ID as string (bigint serialized). Identifies which chain was used for signing; for EOA wallets the identity link applies across all EVM-compatible chains.";
427
+ readonly minLength: 1;
428
+ readonly maxLength: 78;
429
+ };
430
+ readonly timestamp: {
431
+ readonly type: "string";
432
+ readonly description: "Unix timestamp when the attestation was created (bigint serialized).";
433
+ readonly minLength: 1;
434
+ readonly maxLength: 78;
435
+ };
436
+ readonly nonce: {
437
+ readonly type: "string";
438
+ readonly description: "Replay-protection nonce (bigint serialized).";
439
+ readonly minLength: 1;
440
+ readonly maxLength: 78;
441
+ };
442
+ };
443
+ };
444
+ };
445
+ };
284
446
  readonly AppCertifiedLocation: {
285
447
  readonly lexicon: 1;
286
448
  readonly id: "app.certified.location";
@@ -386,7 +548,7 @@ export declare const schemaDict: {
386
548
  readonly subject: {
387
549
  readonly type: "ref";
388
550
  readonly ref: "lex:com.atproto.repo.strongRef";
389
- readonly description: "Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes.";
551
+ readonly description: "Reference to the org.hypercerts.claim.activity or org.hypercerts.collection this board visualizes.";
390
552
  };
391
553
  readonly config: {
392
554
  readonly type: "ref";
@@ -607,9 +769,9 @@ export declare const schemaDict: {
607
769
  };
608
770
  };
609
771
  readonly description: {
610
- readonly type: "ref";
611
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
612
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
772
+ readonly type: "union";
773
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
774
+ readonly description: "Long-form description of the activity. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
613
775
  };
614
776
  readonly image: {
615
777
  readonly type: "union";
@@ -619,7 +781,6 @@ export declare const schemaDict: {
619
781
  readonly contributors: {
620
782
  readonly type: "array";
621
783
  readonly description: "An array of contributor objects, each containing contributor information, weight, and contribution details.";
622
- readonly maxLength: 1000;
623
784
  readonly items: {
624
785
  readonly type: "ref";
625
786
  readonly ref: "lex:org.hypercerts.claim.activity#contributor";
@@ -664,6 +825,7 @@ export declare const schemaDict: {
664
825
  };
665
826
  readonly contributor: {
666
827
  readonly type: "object";
828
+ readonly description: "A contributor to the activity, with identity, weight, and contribution details.";
667
829
  readonly required: ["contributorIdentity"];
668
830
  readonly properties: {
669
831
  readonly contributorIdentity: {
@@ -861,7 +1023,8 @@ export declare const schemaDict: {
861
1023
  readonly properties: {
862
1024
  readonly type: {
863
1025
  readonly type: "string";
864
- readonly description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.";
1026
+ readonly description: "The type of this collection. Values beyond the known set are permitted.";
1027
+ readonly knownValues: ["favorites", "project", "portfolio", "program"];
865
1028
  readonly maxLength: 64;
866
1029
  };
867
1030
  readonly title: {
@@ -874,12 +1037,20 @@ export declare const schemaDict: {
874
1037
  readonly type: "string";
875
1038
  readonly maxLength: 3000;
876
1039
  readonly maxGraphemes: 300;
877
- readonly description: "Short summary of this collection, suitable for previews and list views";
1040
+ readonly description: "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
1041
+ };
1042
+ readonly shortDescriptionFacets: {
1043
+ readonly type: "array";
1044
+ readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
1045
+ readonly items: {
1046
+ readonly type: "ref";
1047
+ readonly ref: "lex:app.bsky.richtext.facet";
1048
+ };
878
1049
  };
879
1050
  readonly description: {
880
- readonly type: "ref";
881
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
882
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
1051
+ readonly type: "union";
1052
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
1053
+ readonly description: "Long-form description of the collection. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
883
1054
  };
884
1055
  readonly avatar: {
885
1056
  readonly type: "union";
@@ -915,6 +1086,7 @@ export declare const schemaDict: {
915
1086
  };
916
1087
  readonly item: {
917
1088
  readonly type: "object";
1089
+ readonly description: "An item in a collection, with an identifier and optional weight.";
918
1090
  readonly required: ["itemIdentifier"];
919
1091
  readonly properties: {
920
1092
  readonly itemIdentifier: {
@@ -996,8 +1168,9 @@ export declare const schemaDict: {
996
1168
  };
997
1169
  readonly contentType: {
998
1170
  readonly type: "string";
1171
+ readonly description: "The type of attachment. Values beyond the known set are permitted.";
1172
+ readonly knownValues: ["report", "audit", "evidence", "testimonial", "methodology"];
999
1173
  readonly maxLength: 64;
1000
- readonly description: "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.";
1001
1174
  };
1002
1175
  readonly content: {
1003
1176
  readonly type: "array";
@@ -1028,9 +1201,9 @@ export declare const schemaDict: {
1028
1201
  };
1029
1202
  };
1030
1203
  readonly description: {
1031
- readonly type: "ref";
1032
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
1033
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
1204
+ readonly type: "union";
1205
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
1206
+ readonly description: "Long-form description of the attachment. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
1034
1207
  };
1035
1208
  readonly location: {
1036
1209
  readonly type: "ref";
@@ -1121,16 +1294,19 @@ export declare const schemaDict: {
1121
1294
  readonly required: ["min", "max", "value"];
1122
1295
  readonly properties: {
1123
1296
  readonly min: {
1124
- readonly type: "integer";
1125
- readonly description: "Minimum value of the scale, e.g. 0 or 1.";
1297
+ readonly type: "string";
1298
+ readonly description: "Minimum value of the scale as a numeric string (e.g. '0', '1').";
1299
+ readonly maxLength: 50;
1126
1300
  };
1127
1301
  readonly max: {
1128
- readonly type: "integer";
1129
- readonly description: "Maximum value of the scale, e.g. 5 or 10.";
1302
+ readonly type: "string";
1303
+ readonly description: "Maximum value of the scale as a numeric string (e.g. '5', '10').";
1304
+ readonly maxLength: 50;
1130
1305
  };
1131
1306
  readonly value: {
1132
- readonly type: "integer";
1133
- readonly description: "Score within the inclusive range [min, max].";
1307
+ readonly type: "string";
1308
+ readonly description: "Score within the inclusive range [min, max] as a numeric string (e.g. '3.7').";
1309
+ readonly maxLength: 50;
1134
1310
  };
1135
1311
  };
1136
1312
  };
@@ -1248,6 +1424,27 @@ export declare const schemaDict: {
1248
1424
  readonly id: "org.hypercerts.defs";
1249
1425
  readonly description: "Common type definitions used across all Hypercerts protocols.";
1250
1426
  readonly defs: {
1427
+ readonly descriptionString: {
1428
+ readonly type: "object";
1429
+ readonly description: "An inline long-form description as plain text or markdown, with optional rich-text annotations.";
1430
+ readonly required: ["value"];
1431
+ readonly properties: {
1432
+ readonly value: {
1433
+ readonly type: "string";
1434
+ readonly description: "The description text (plain text or markdown).";
1435
+ readonly maxLength: 250000;
1436
+ readonly maxGraphemes: 25000;
1437
+ };
1438
+ readonly facets: {
1439
+ readonly type: "array";
1440
+ readonly description: "Rich text annotations for the description (mentions, URLs, hashtags, etc).";
1441
+ readonly items: {
1442
+ readonly type: "ref";
1443
+ readonly ref: "lex:app.bsky.richtext.facet";
1444
+ };
1445
+ };
1446
+ };
1447
+ };
1251
1448
  readonly uri: {
1252
1449
  readonly type: "object";
1253
1450
  readonly required: ["uri"];
@@ -1337,17 +1534,17 @@ export declare const schemaDict: {
1337
1534
  readonly key: "tid";
1338
1535
  readonly record: {
1339
1536
  readonly type: "object";
1340
- readonly required: ["from", "to", "amount", "currency", "createdAt"];
1537
+ readonly required: ["to", "amount", "currency", "createdAt"];
1341
1538
  readonly properties: {
1342
1539
  readonly from: {
1343
- readonly type: "ref";
1344
- readonly ref: "lex:app.certified.defs#did";
1345
- readonly description: "DID of the sender who transferred the funds. Leave empty if sender wants to stay anonymous.";
1540
+ readonly type: "union";
1541
+ readonly description: "The sender of the funds (a free-text string, an account DID, or a strong reference to a record). Optional — omit to represent anonymity.";
1542
+ readonly refs: ["lex:org.hypercerts.funding.receipt#text", "lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
1346
1543
  };
1347
1544
  readonly to: {
1348
- readonly type: "string";
1349
- readonly description: "The recipient of the funds. Can be identified by DID or a clear-text name.";
1350
- readonly maxLength: 2048;
1545
+ readonly type: "union";
1546
+ readonly description: "The recipient of the funds (a free-text string, an account DID, or a strong reference to a record).";
1547
+ readonly refs: ["lex:org.hypercerts.funding.receipt#text", "lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
1351
1548
  };
1352
1549
  readonly amount: {
1353
1550
  readonly type: "string";
@@ -1375,9 +1572,9 @@ export declare const schemaDict: {
1375
1572
  readonly maxLength: 256;
1376
1573
  };
1377
1574
  readonly for: {
1378
- readonly type: "string";
1379
- readonly format: "at-uri";
1380
- readonly description: "Optional reference to the activity, project, or organization this funding relates to.";
1575
+ readonly type: "ref";
1576
+ readonly ref: "lex:com.atproto.repo.strongRef";
1577
+ readonly description: "Optional strong reference to the activity, project, or organization this funding relates to.";
1381
1578
  };
1382
1579
  readonly notes: {
1383
1580
  readonly type: "string";
@@ -1397,6 +1594,18 @@ export declare const schemaDict: {
1397
1594
  };
1398
1595
  };
1399
1596
  };
1597
+ readonly text: {
1598
+ readonly type: "object";
1599
+ readonly description: "A free-text string value (e.g. a display name, wallet address, or other identifier).";
1600
+ readonly required: ["value"];
1601
+ readonly properties: {
1602
+ readonly value: {
1603
+ readonly type: "string";
1604
+ readonly description: "The string value.";
1605
+ readonly maxLength: 2048;
1606
+ };
1607
+ };
1608
+ };
1400
1609
  };
1401
1610
  };
1402
1611
  readonly OrgHypercertsWorkscopeCel: {
@@ -1522,749 +1731,704 @@ export declare const schemaDict: {
1522
1731
  };
1523
1732
  };
1524
1733
  };
1525
- };
1526
- export declare const schemas: ({
1527
- readonly lexicon: 1;
1528
- readonly id: "app.certified.actor.organization";
1529
- readonly defs: {
1530
- readonly main: {
1531
- readonly type: "record";
1532
- readonly description: "Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.";
1533
- readonly key: "literal:self";
1534
- readonly record: {
1734
+ readonly PubLeafletBlocksBlockquote: {
1735
+ readonly lexicon: 1;
1736
+ readonly id: "pub.leaflet.blocks.blockquote";
1737
+ readonly defs: {
1738
+ readonly main: {
1535
1739
  readonly type: "object";
1536
- readonly required: ["createdAt"];
1740
+ readonly required: ["plaintext"];
1537
1741
  readonly properties: {
1538
- readonly organizationType: {
1539
- readonly type: "array";
1540
- readonly description: "Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative').";
1541
- readonly items: {
1542
- readonly type: "string";
1543
- readonly maxLength: 128;
1544
- readonly maxGraphemes: 100;
1545
- };
1546
- readonly maxLength: 10;
1742
+ readonly plaintext: {
1743
+ readonly type: "string";
1547
1744
  };
1548
- readonly urls: {
1745
+ readonly facets: {
1549
1746
  readonly type: "array";
1550
- readonly description: "Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL.";
1551
1747
  readonly items: {
1552
1748
  readonly type: "ref";
1553
- readonly ref: "lex:app.certified.actor.organization#urlItem";
1749
+ readonly ref: "lex:pub.leaflet.richtext.facet";
1554
1750
  };
1555
1751
  };
1556
- readonly location: {
1752
+ };
1753
+ };
1754
+ };
1755
+ };
1756
+ readonly PubLeafletBlocksBskyPost: {
1757
+ readonly lexicon: 1;
1758
+ readonly id: "pub.leaflet.blocks.bskyPost";
1759
+ readonly defs: {
1760
+ readonly main: {
1761
+ readonly type: "object";
1762
+ readonly required: ["postRef"];
1763
+ readonly properties: {
1764
+ readonly postRef: {
1557
1765
  readonly type: "ref";
1558
1766
  readonly ref: "lex:com.atproto.repo.strongRef";
1559
- readonly description: "A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location.";
1560
- };
1561
- readonly foundedDate: {
1562
- readonly type: "string";
1563
- readonly format: "datetime";
1564
- readonly 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.";
1565
1767
  };
1566
- readonly createdAt: {
1768
+ readonly clientHost: {
1567
1769
  readonly type: "string";
1568
- readonly format: "datetime";
1569
- readonly description: "Client-declared timestamp when this record was originally created.";
1570
1770
  };
1571
1771
  };
1572
1772
  };
1573
1773
  };
1574
- readonly urlItem: {
1575
- readonly type: "object";
1576
- readonly description: "A labeled URL reference.";
1577
- readonly required: ["url"];
1578
- readonly properties: {
1579
- readonly url: {
1580
- readonly type: "string";
1581
- readonly format: "uri";
1582
- readonly description: "The URL.";
1583
- readonly maxLength: 10000;
1584
- readonly maxGraphemes: 2048;
1585
- };
1586
- readonly label: {
1587
- readonly type: "string";
1588
- readonly description: "Optional human-readable label for this URL (e.g. 'Support page', 'Donation page').";
1589
- readonly maxLength: 640;
1590
- readonly maxGraphemes: 64;
1774
+ };
1775
+ readonly PubLeafletBlocksButton: {
1776
+ readonly lexicon: 1;
1777
+ readonly id: "pub.leaflet.blocks.button";
1778
+ readonly defs: {
1779
+ readonly main: {
1780
+ readonly type: "object";
1781
+ readonly required: ["text", "url"];
1782
+ readonly properties: {
1783
+ readonly text: {
1784
+ readonly type: "string";
1785
+ };
1786
+ readonly url: {
1787
+ readonly type: "string";
1788
+ readonly format: "uri";
1789
+ };
1591
1790
  };
1592
1791
  };
1593
1792
  };
1594
1793
  };
1595
- } | {
1596
- readonly lexicon: 1;
1597
- readonly id: "app.certified.actor.profile";
1598
- readonly defs: {
1599
- readonly main: {
1600
- readonly type: "record";
1601
- readonly description: "A declaration of a Certified account profile.";
1602
- readonly key: "literal:self";
1603
- readonly record: {
1794
+ readonly PubLeafletBlocksCode: {
1795
+ readonly lexicon: 1;
1796
+ readonly id: "pub.leaflet.blocks.code";
1797
+ readonly defs: {
1798
+ readonly main: {
1604
1799
  readonly type: "object";
1605
- readonly required: ["createdAt"];
1800
+ readonly required: ["plaintext"];
1606
1801
  readonly properties: {
1607
- readonly displayName: {
1802
+ readonly plaintext: {
1608
1803
  readonly type: "string";
1609
- readonly description: "Display name for the account";
1610
- readonly maxGraphemes: 64;
1611
- readonly maxLength: 640;
1612
1804
  };
1613
- readonly description: {
1805
+ readonly language: {
1614
1806
  readonly type: "string";
1615
- readonly description: "Free-form profile description text.";
1616
- readonly maxGraphemes: 256;
1617
- readonly maxLength: 2560;
1618
1807
  };
1619
- readonly pronouns: {
1808
+ readonly syntaxHighlightingTheme: {
1620
1809
  readonly type: "string";
1621
- readonly description: "Free-form pronouns text.";
1622
- readonly maxGraphemes: 20;
1623
- readonly maxLength: 200;
1624
1810
  };
1625
- readonly website: {
1626
- readonly type: "string";
1627
- readonly format: "uri";
1628
- readonly description: "Account website URL";
1811
+ };
1812
+ };
1813
+ };
1814
+ };
1815
+ readonly PubLeafletBlocksHeader: {
1816
+ readonly lexicon: 1;
1817
+ readonly id: "pub.leaflet.blocks.header";
1818
+ readonly defs: {
1819
+ readonly main: {
1820
+ readonly type: "object";
1821
+ readonly required: ["plaintext"];
1822
+ readonly properties: {
1823
+ readonly level: {
1824
+ readonly type: "integer";
1825
+ readonly minimum: 1;
1826
+ readonly maximum: 6;
1629
1827
  };
1630
- readonly avatar: {
1631
- readonly type: "union";
1632
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
1633
- readonly description: "Small image to be displayed next to posts from account. AKA, 'profile picture'";
1828
+ readonly plaintext: {
1829
+ readonly type: "string";
1634
1830
  };
1635
- readonly banner: {
1636
- readonly type: "union";
1637
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#largeImage"];
1638
- readonly description: "Larger horizontal image to display behind profile view.";
1831
+ readonly facets: {
1832
+ readonly type: "array";
1833
+ readonly items: {
1834
+ readonly type: "ref";
1835
+ readonly ref: "lex:pub.leaflet.richtext.facet";
1836
+ };
1639
1837
  };
1640
- readonly createdAt: {
1838
+ };
1839
+ };
1840
+ };
1841
+ };
1842
+ readonly PubLeafletBlocksHorizontalRule: {
1843
+ readonly lexicon: 1;
1844
+ readonly id: "pub.leaflet.blocks.horizontalRule";
1845
+ readonly defs: {
1846
+ readonly main: {
1847
+ readonly type: "object";
1848
+ readonly required: [];
1849
+ readonly properties: {};
1850
+ };
1851
+ };
1852
+ };
1853
+ readonly PubLeafletBlocksIframe: {
1854
+ readonly lexicon: 1;
1855
+ readonly id: "pub.leaflet.blocks.iframe";
1856
+ readonly defs: {
1857
+ readonly main: {
1858
+ readonly type: "object";
1859
+ readonly required: ["url"];
1860
+ readonly properties: {
1861
+ readonly url: {
1641
1862
  readonly type: "string";
1642
- readonly format: "datetime";
1643
- readonly description: "Client-declared timestamp when this record was originally created";
1863
+ readonly format: "uri";
1864
+ };
1865
+ readonly height: {
1866
+ readonly type: "integer";
1867
+ readonly minimum: 16;
1868
+ readonly maximum: 1600;
1644
1869
  };
1645
1870
  };
1646
1871
  };
1647
1872
  };
1648
1873
  };
1649
- } | {
1650
- readonly lexicon: 1;
1651
- readonly id: "app.certified.badge.award";
1652
- readonly defs: {
1653
- readonly main: {
1654
- readonly type: "record";
1655
- readonly description: "Records a badge award to a user, project, or activity claim.";
1656
- readonly key: "tid";
1657
- readonly record: {
1874
+ readonly PubLeafletBlocksImage: {
1875
+ readonly lexicon: 1;
1876
+ readonly id: "pub.leaflet.blocks.image";
1877
+ readonly defs: {
1878
+ readonly main: {
1658
1879
  readonly type: "object";
1659
- readonly required: ["badge", "subject", "createdAt"];
1880
+ readonly required: ["image", "aspectRatio"];
1660
1881
  readonly properties: {
1661
- readonly badge: {
1662
- readonly type: "ref";
1663
- readonly ref: "lex:app.certified.badge.definition";
1664
- readonly description: "Reference to the badge definition for this award.";
1665
- };
1666
- readonly subject: {
1667
- readonly type: "union";
1668
- readonly description: "Entity the badge award is for (either an account DID or any specific AT Protocol record), e.g. a user, a project, or a specific activity claim.";
1669
- readonly refs: ["lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
1882
+ readonly image: {
1883
+ readonly type: "blob";
1884
+ readonly accept: ["image/*"];
1885
+ readonly maxSize: 1000000;
1670
1886
  };
1671
- readonly note: {
1887
+ readonly alt: {
1672
1888
  readonly type: "string";
1673
- readonly description: "Optional statement explaining the reason for this badge award.";
1674
- readonly maxLength: 500;
1889
+ readonly description: "Alt text description of the image, for accessibility.";
1675
1890
  };
1676
- readonly url: {
1677
- readonly type: "string";
1678
- readonly format: "uri";
1679
- readonly description: "Optional URL the badge award links to.";
1680
- readonly maxLength: 2048;
1891
+ readonly aspectRatio: {
1892
+ readonly type: "ref";
1893
+ readonly ref: "lex:pub.leaflet.blocks.image#aspectRatio";
1681
1894
  };
1682
- readonly createdAt: {
1683
- readonly type: "string";
1684
- readonly format: "datetime";
1685
- readonly description: "Client-declared timestamp when this record was originally created";
1895
+ };
1896
+ };
1897
+ readonly aspectRatio: {
1898
+ readonly type: "object";
1899
+ readonly required: ["width", "height"];
1900
+ readonly properties: {
1901
+ readonly width: {
1902
+ readonly type: "integer";
1903
+ };
1904
+ readonly height: {
1905
+ readonly type: "integer";
1686
1906
  };
1687
1907
  };
1688
1908
  };
1689
1909
  };
1690
1910
  };
1691
- } | {
1692
- readonly lexicon: 1;
1693
- readonly id: "app.certified.badge.definition";
1694
- readonly defs: {
1695
- readonly main: {
1696
- readonly type: "record";
1697
- readonly description: "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.";
1698
- readonly key: "tid";
1699
- readonly record: {
1911
+ readonly PubLeafletBlocksMath: {
1912
+ readonly lexicon: 1;
1913
+ readonly id: "pub.leaflet.blocks.math";
1914
+ readonly defs: {
1915
+ readonly main: {
1700
1916
  readonly type: "object";
1701
- readonly required: ["title", "badgeType", "icon", "createdAt"];
1917
+ readonly required: ["tex"];
1702
1918
  readonly properties: {
1703
- readonly badgeType: {
1919
+ readonly tex: {
1704
1920
  readonly type: "string";
1705
- readonly description: "Category of the badge (e.g. endorsement, participation, affiliation).";
1706
- readonly maxLength: 100;
1707
1921
  };
1708
- readonly title: {
1709
- readonly type: "string";
1710
- readonly description: "Human-readable title of the badge.";
1711
- readonly maxLength: 256;
1922
+ };
1923
+ };
1924
+ };
1925
+ };
1926
+ readonly PubLeafletBlocksOrderedList: {
1927
+ readonly lexicon: 1;
1928
+ readonly id: "pub.leaflet.blocks.orderedList";
1929
+ readonly defs: {
1930
+ readonly main: {
1931
+ readonly type: "object";
1932
+ readonly required: ["children"];
1933
+ readonly properties: {
1934
+ readonly startIndex: {
1935
+ readonly type: "integer";
1936
+ readonly description: "The starting number for this ordered list. Defaults to 1 if not specified.";
1712
1937
  };
1713
- readonly icon: {
1714
- readonly type: "blob";
1715
- readonly description: "Icon representing the badge, stored as a blob for compact visual display.";
1716
- readonly accept: ["image/png", "image/jpeg", "image/webp", "image/svg+xml"];
1717
- readonly maxSize: 1048576;
1938
+ readonly children: {
1939
+ readonly type: "array";
1940
+ readonly items: {
1941
+ readonly type: "ref";
1942
+ readonly ref: "lex:pub.leaflet.blocks.orderedList#listItem";
1943
+ };
1718
1944
  };
1719
- readonly description: {
1720
- readonly type: "string";
1721
- readonly description: "Optional short statement describing what the badge represents.";
1722
- readonly maxLength: 5000;
1723
- readonly maxGraphemes: 500;
1945
+ };
1946
+ };
1947
+ readonly listItem: {
1948
+ readonly type: "object";
1949
+ readonly required: ["content"];
1950
+ readonly properties: {
1951
+ readonly checked: {
1952
+ readonly type: "boolean";
1953
+ readonly description: "If present, this item is a checklist item. true = checked, false = unchecked. If absent, this is a normal list item.";
1724
1954
  };
1725
- readonly allowedIssuers: {
1955
+ readonly content: {
1956
+ readonly type: "union";
1957
+ readonly refs: ["lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image"];
1958
+ };
1959
+ readonly children: {
1726
1960
  readonly type: "array";
1727
- readonly description: "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.";
1728
- readonly maxLength: 100;
1961
+ readonly description: "Nested ordered list items. Mutually exclusive with unorderedListChildren; if both are present, children takes precedence.";
1729
1962
  readonly items: {
1730
1963
  readonly type: "ref";
1731
- readonly ref: "lex:app.certified.defs#did";
1964
+ readonly ref: "lex:pub.leaflet.blocks.orderedList#listItem";
1732
1965
  };
1733
1966
  };
1734
- readonly createdAt: {
1735
- readonly type: "string";
1736
- readonly format: "datetime";
1737
- readonly description: "Client-declared timestamp when this record was originally created";
1967
+ readonly unorderedListChildren: {
1968
+ readonly type: "ref";
1969
+ readonly description: "A nested unordered list. Mutually exclusive with children; if both are present, children takes precedence.";
1970
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList";
1738
1971
  };
1739
1972
  };
1740
1973
  };
1741
1974
  };
1742
1975
  };
1743
- } | {
1744
- readonly lexicon: 1;
1745
- readonly id: "app.certified.badge.response";
1746
- readonly defs: {
1747
- readonly main: {
1748
- readonly type: "record";
1749
- readonly description: "Recipient response to a badge award.";
1750
- readonly key: "tid";
1751
- readonly record: {
1976
+ readonly PubLeafletBlocksPage: {
1977
+ readonly lexicon: 1;
1978
+ readonly id: "pub.leaflet.blocks.page";
1979
+ readonly defs: {
1980
+ readonly main: {
1752
1981
  readonly type: "object";
1753
- readonly required: ["badgeAward", "response", "createdAt"];
1982
+ readonly required: ["id"];
1754
1983
  readonly properties: {
1755
- readonly badgeAward: {
1756
- readonly type: "ref";
1757
- readonly ref: "lex:app.certified.badge.award";
1758
- readonly description: "Reference to the badge award.";
1759
- };
1760
- readonly response: {
1761
- readonly type: "string";
1762
- readonly knownValues: ["accepted", "rejected"];
1763
- readonly description: "The recipient’s response for the badge (accepted or rejected).";
1764
- };
1765
- readonly weight: {
1766
- readonly type: "string";
1767
- readonly description: "Optional relative weight for accepted badges, assigned by the recipient.";
1768
- readonly maxLength: 50;
1769
- };
1770
- readonly createdAt: {
1984
+ readonly id: {
1771
1985
  readonly type: "string";
1772
- readonly format: "datetime";
1773
- readonly description: "Client-declared timestamp when this record was originally created";
1774
1986
  };
1775
1987
  };
1776
1988
  };
1777
1989
  };
1778
1990
  };
1779
- } | {
1780
- readonly lexicon: 1;
1781
- readonly id: "app.certified.defs";
1782
- readonly description: "Common type definitions used across certified protocols.";
1783
- readonly defs: {
1784
- readonly did: {
1785
- readonly type: "object";
1786
- readonly description: "A Decentralized Identifier (DID) string.";
1787
- readonly required: ["did"];
1788
- readonly properties: {
1789
- readonly did: {
1790
- readonly type: "string";
1791
- readonly format: "did";
1792
- readonly description: "The DID string value.";
1793
- readonly maxLength: 256;
1991
+ readonly PubLeafletBlocksPoll: {
1992
+ readonly lexicon: 1;
1993
+ readonly id: "pub.leaflet.blocks.poll";
1994
+ readonly defs: {
1995
+ readonly main: {
1996
+ readonly type: "object";
1997
+ readonly required: ["pollRef"];
1998
+ readonly properties: {
1999
+ readonly pollRef: {
2000
+ readonly type: "ref";
2001
+ readonly ref: "lex:com.atproto.repo.strongRef";
2002
+ };
1794
2003
  };
1795
2004
  };
1796
2005
  };
1797
2006
  };
1798
- } | {
1799
- readonly lexicon: 1;
1800
- readonly id: "app.certified.location";
1801
- readonly defs: {
1802
- readonly main: {
1803
- readonly type: "record";
1804
- readonly description: "A location reference";
1805
- readonly key: "tid";
1806
- readonly record: {
2007
+ readonly PubLeafletBlocksText: {
2008
+ readonly lexicon: 1;
2009
+ readonly id: "pub.leaflet.blocks.text";
2010
+ readonly defs: {
2011
+ readonly main: {
1807
2012
  readonly type: "object";
1808
- readonly required: ["lpVersion", "srs", "locationType", "location", "createdAt"];
2013
+ readonly required: ["plaintext"];
1809
2014
  readonly properties: {
1810
- readonly lpVersion: {
1811
- readonly type: "string";
1812
- readonly description: "The version of the Location Protocol";
1813
- readonly maxLength: 10;
1814
- };
1815
- readonly srs: {
1816
- readonly type: "string";
1817
- readonly format: "uri";
1818
- readonly description: "The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system.";
1819
- readonly maxLength: 100;
1820
- };
1821
- readonly locationType: {
1822
- readonly type: "string";
1823
- readonly 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";
1824
- readonly knownValues: ["coordinate-decimal", "geojson-point", "geojson", "h3", "geohash", "wkt", "address", "scaledCoordinates"];
1825
- readonly maxLength: 20;
1826
- };
1827
- readonly location: {
1828
- readonly type: "union";
1829
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob", "lex:app.certified.location#string"];
1830
- readonly description: "The location of where the work was performed as a URI, blob, or inline string.";
1831
- };
1832
- readonly name: {
2015
+ readonly plaintext: {
1833
2016
  readonly type: "string";
1834
- readonly description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')";
1835
- readonly maxLength: 1000;
1836
- readonly maxGraphemes: 100;
1837
2017
  };
1838
- readonly description: {
2018
+ readonly textSize: {
1839
2019
  readonly type: "string";
1840
- readonly description: "Additional context about this location, such as its significance to the work or specific boundaries";
1841
- readonly maxLength: 2000;
1842
- readonly maxGraphemes: 500;
2020
+ readonly enum: ["default", "small", "large"];
1843
2021
  };
1844
- readonly createdAt: {
1845
- readonly type: "string";
1846
- readonly format: "datetime";
1847
- readonly description: "Client-declared timestamp when this record was originally created";
2022
+ readonly facets: {
2023
+ readonly type: "array";
2024
+ readonly items: {
2025
+ readonly type: "ref";
2026
+ readonly ref: "lex:pub.leaflet.richtext.facet";
2027
+ };
1848
2028
  };
1849
2029
  };
1850
2030
  };
1851
2031
  };
1852
- readonly string: {
1853
- readonly type: "object";
1854
- readonly required: ["string"];
1855
- readonly description: "A location represented as a string, e.g. coordinates or a small GeoJSON string.";
1856
- readonly properties: {
1857
- readonly string: {
1858
- readonly type: "string";
1859
- readonly description: "The location string value";
1860
- readonly maxLength: 10000;
1861
- readonly maxGraphemes: 1000;
1862
- };
1863
- };
1864
- };
1865
2032
  };
1866
- } | {
1867
- readonly lexicon: 1;
1868
- readonly id: "com.atproto.repo.strongRef";
1869
- readonly description: "A URI with a content-hash fingerprint.";
1870
- readonly defs: {
1871
- readonly main: {
1872
- readonly type: "object";
1873
- readonly required: ["uri", "cid"];
1874
- readonly properties: {
1875
- readonly uri: {
1876
- readonly type: "string";
1877
- readonly format: "at-uri";
1878
- };
1879
- readonly cid: {
1880
- readonly type: "string";
1881
- readonly format: "cid";
2033
+ readonly PubLeafletBlocksUnorderedList: {
2034
+ readonly lexicon: 1;
2035
+ readonly id: "pub.leaflet.blocks.unorderedList";
2036
+ readonly defs: {
2037
+ readonly main: {
2038
+ readonly type: "object";
2039
+ readonly required: ["children"];
2040
+ readonly properties: {
2041
+ readonly children: {
2042
+ readonly type: "array";
2043
+ readonly items: {
2044
+ readonly type: "ref";
2045
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList#listItem";
2046
+ };
2047
+ };
1882
2048
  };
1883
2049
  };
1884
- };
1885
- };
1886
- } | {
1887
- readonly lexicon: 1;
1888
- readonly id: "org.hyperboards.board";
1889
- readonly defs: {
1890
- readonly main: {
1891
- readonly type: "record";
1892
- readonly description: "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.";
1893
- readonly key: "tid";
1894
- readonly record: {
2050
+ readonly listItem: {
1895
2051
  readonly type: "object";
1896
- readonly required: ["subject", "createdAt"];
2052
+ readonly required: ["content"];
1897
2053
  readonly properties: {
1898
- readonly subject: {
1899
- readonly type: "ref";
1900
- readonly ref: "lex:com.atproto.repo.strongRef";
1901
- readonly description: "Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes.";
2054
+ readonly checked: {
2055
+ readonly type: "boolean";
2056
+ readonly description: "If present, this item is a checklist item. true = checked, false = unchecked. If absent, this is a normal list item.";
1902
2057
  };
1903
- readonly config: {
1904
- readonly type: "ref";
1905
- readonly ref: "lex:org.hyperboards.board#boardConfig";
1906
- readonly description: "Board-level visual configuration (background, colors, aspect ratio).";
2058
+ readonly content: {
2059
+ readonly type: "union";
2060
+ readonly refs: ["lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image"];
1907
2061
  };
1908
- readonly contributorConfigs: {
2062
+ readonly children: {
1909
2063
  readonly type: "array";
1910
- readonly description: "Per-contributor configuration entries for this board.";
1911
- readonly maxLength: 1000;
2064
+ readonly description: "Nested unordered list items. Mutually exclusive with orderedListChildren; if both are present, children takes precedence.";
1912
2065
  readonly items: {
1913
2066
  readonly type: "ref";
1914
- readonly ref: "lex:org.hyperboards.board#contributorConfig";
2067
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList#listItem";
1915
2068
  };
1916
2069
  };
1917
- readonly createdAt: {
1918
- readonly type: "string";
1919
- readonly format: "datetime";
1920
- readonly description: "Client-declared timestamp when this record was originally created.";
2070
+ readonly orderedListChildren: {
2071
+ readonly type: "ref";
2072
+ readonly description: "Nested ordered list items. Mutually exclusive with children; if both are present, children takes precedence.";
2073
+ readonly ref: "lex:pub.leaflet.blocks.orderedList";
1921
2074
  };
1922
2075
  };
1923
2076
  };
1924
2077
  };
1925
- readonly boardConfig: {
1926
- readonly type: "object";
1927
- readonly description: "Visual configuration for a hyperboard's background, colors, and layout.";
1928
- readonly properties: {
1929
- readonly backgroundType: {
1930
- readonly type: "string";
1931
- readonly description: "Type of background content.";
1932
- readonly knownValues: ["image", "iframe"];
1933
- readonly maxLength: 10;
1934
- };
1935
- readonly backgroundImage: {
1936
- readonly type: "union";
1937
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
1938
- readonly description: "Background image as a URI or image blob.";
1939
- };
1940
- readonly backgroundIframeUrl: {
1941
- readonly type: "string";
1942
- readonly format: "uri";
1943
- readonly description: "URI of the background iframe.";
1944
- readonly maxLength: 2048;
1945
- };
1946
- readonly backgroundGrayscale: {
1947
- readonly type: "boolean";
1948
- readonly description: "Whether the background is rendered in grayscale. Default: true.";
1949
- };
1950
- readonly backgroundOpacity: {
1951
- readonly type: "integer";
1952
- readonly description: "Background opacity as a percentage (0–100).";
1953
- readonly minimum: 0;
1954
- readonly maximum: 100;
1955
- };
1956
- readonly backgroundColor: {
1957
- readonly type: "string";
1958
- readonly description: "Background color as a hex string (e.g. '#ffffff').";
1959
- readonly maxLength: 20;
1960
- };
1961
- readonly borderColor: {
1962
- readonly type: "string";
1963
- readonly description: "Border color as a hex string (e.g. '#000000').";
1964
- readonly maxLength: 20;
1965
- };
1966
- readonly grayscaleImages: {
1967
- readonly type: "boolean";
1968
- readonly description: "Whether contributor images are rendered in grayscale. Default: false.";
1969
- };
1970
- readonly imageShape: {
1971
- readonly type: "string";
1972
- readonly description: "Shape used to crop contributor images on this board.";
1973
- readonly knownValues: ["circular", "square"];
1974
- readonly maxLength: 20;
1975
- };
1976
- readonly aspectRatio: {
1977
- readonly type: "string";
1978
- readonly description: "Display aspect ratio of the board.";
1979
- readonly knownValues: ["16:9", "4:3", "1:1"];
1980
- readonly maxLength: 10;
1981
- };
1982
- };
1983
- };
1984
- readonly contributorConfig: {
1985
- readonly type: "object";
1986
- readonly 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.";
1987
- readonly required: ["contributor"];
1988
- readonly properties: {
1989
- readonly contributor: {
1990
- readonly type: "union";
1991
- readonly refs: ["lex:com.atproto.repo.strongRef", "lex:org.hypercerts.claim.activity#contributorIdentity"];
1992
- readonly 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.";
1993
- };
1994
- readonly override: {
1995
- readonly type: "boolean";
1996
- readonly 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.";
1997
- };
1998
- readonly displayName: {
1999
- readonly type: "string";
2000
- readonly description: "Display name for this contributor on this board.";
2001
- readonly maxLength: 640;
2002
- readonly maxGraphemes: 64;
2003
- };
2004
- readonly image: {
2005
- readonly type: "union";
2006
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2007
- readonly description: "Avatar or face image for this contributor on this board, as a URI or image blob.";
2008
- };
2009
- readonly video: {
2010
- readonly type: "union";
2011
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallVideo"];
2012
- readonly description: "Video for this contributor, as a URI (embed/direct link) or uploaded video blob.";
2013
- };
2014
- readonly hoverImage: {
2015
- readonly type: "union";
2016
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2017
- readonly description: "Image overlay shown when hovering over this contributor, as a URI or image blob.";
2018
- };
2019
- readonly hoverIframeUrl: {
2020
- readonly type: "string";
2021
- readonly format: "uri";
2022
- readonly description: "Iframe overlay shown when hovering over this contributor.";
2023
- readonly maxLength: 2048;
2024
- };
2025
- readonly url: {
2026
- readonly type: "string";
2027
- readonly format: "uri";
2028
- readonly description: "Click-through link URL for this contributor.";
2029
- readonly maxLength: 2048;
2030
- };
2031
- };
2032
- };
2033
2078
  };
2034
- } | {
2035
- readonly lexicon: 1;
2036
- readonly id: "org.hyperboards.displayProfile";
2037
- readonly defs: {
2038
- readonly main: {
2039
- readonly type: "record";
2040
- readonly 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.";
2041
- readonly key: "literal:self";
2042
- readonly record: {
2079
+ readonly PubLeafletBlocksWebsite: {
2080
+ readonly lexicon: 1;
2081
+ readonly id: "pub.leaflet.blocks.website";
2082
+ readonly defs: {
2083
+ readonly main: {
2043
2084
  readonly type: "object";
2044
- readonly required: ["createdAt"];
2085
+ readonly required: ["src"];
2045
2086
  readonly properties: {
2046
- readonly displayName: {
2047
- readonly type: "string";
2048
- readonly description: "Display name override for this user on hyperboards.";
2049
- readonly maxLength: 640;
2050
- readonly maxGraphemes: 64;
2051
- };
2052
- readonly image: {
2053
- readonly type: "union";
2054
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2055
- readonly description: "Avatar or face image override for this user on hyperboards, as a URI or image blob.";
2056
- };
2057
- readonly video: {
2058
- readonly type: "union";
2059
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallVideo"];
2060
- readonly description: "Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob.";
2061
- };
2062
- readonly hoverImage: {
2063
- readonly type: "union";
2064
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2065
- readonly description: "Default hover image for this user across boards, as a URI or image blob.";
2087
+ readonly previewImage: {
2088
+ readonly type: "blob";
2089
+ readonly accept: ["image/*"];
2090
+ readonly maxSize: 1000000;
2066
2091
  };
2067
- readonly hoverIframeUrl: {
2092
+ readonly title: {
2068
2093
  readonly type: "string";
2069
- readonly format: "uri";
2070
- readonly description: "Default hover iframe URL for this user across boards.";
2071
- readonly maxLength: 2048;
2072
2094
  };
2073
- readonly url: {
2095
+ readonly description: {
2074
2096
  readonly type: "string";
2075
- readonly format: "uri";
2076
- readonly description: "Default click-through link URL for this user across boards.";
2077
- readonly maxLength: 2048;
2078
2097
  };
2079
- readonly createdAt: {
2098
+ readonly src: {
2080
2099
  readonly type: "string";
2081
- readonly format: "datetime";
2082
- readonly description: "Client-declared timestamp when this record was originally created.";
2100
+ readonly format: "uri";
2083
2101
  };
2084
2102
  };
2085
2103
  };
2086
2104
  };
2087
2105
  };
2088
- } | {
2089
- readonly lexicon: 1;
2090
- readonly id: "org.hypercerts.claim.activity";
2091
- readonly defs: {
2092
- readonly main: {
2093
- readonly type: "record";
2094
- readonly description: "A hypercert record tracking impact work.";
2095
- readonly key: "any";
2096
- readonly record: {
2106
+ readonly PubLeafletPagesLinearDocument: {
2107
+ readonly lexicon: 1;
2108
+ readonly id: "pub.leaflet.pages.linearDocument";
2109
+ readonly defs: {
2110
+ readonly main: {
2097
2111
  readonly type: "object";
2098
- readonly required: ["title", "shortDescription", "createdAt"];
2112
+ readonly required: ["blocks"];
2099
2113
  readonly properties: {
2100
- readonly title: {
2101
- readonly type: "string";
2102
- readonly description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')";
2103
- readonly maxLength: 256;
2104
- };
2105
- readonly shortDescription: {
2114
+ readonly id: {
2106
2115
  readonly type: "string";
2107
- readonly description: "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
2108
- readonly maxLength: 3000;
2109
- readonly maxGraphemes: 300;
2110
2116
  };
2111
- readonly shortDescriptionFacets: {
2117
+ readonly blocks: {
2112
2118
  readonly type: "array";
2113
- readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
2114
2119
  readonly items: {
2115
2120
  readonly type: "ref";
2116
- readonly ref: "lex:app.bsky.richtext.facet";
2121
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#block";
2117
2122
  };
2118
2123
  };
2119
- readonly description: {
2120
- readonly type: "ref";
2121
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
2122
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
2123
- };
2124
- readonly image: {
2125
- readonly type: "union";
2126
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2127
- readonly description: "The hypercert visual representation as a URI or image blob.";
2124
+ };
2125
+ };
2126
+ readonly block: {
2127
+ readonly type: "object";
2128
+ readonly required: ["block"];
2129
+ readonly properties: {
2130
+ readonly block: {
2131
+ readonly type: "union";
2132
+ readonly refs: ["lex:pub.leaflet.blocks.iframe", "lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.blockquote", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image", "lex:pub.leaflet.blocks.unorderedList", "lex:pub.leaflet.blocks.orderedList", "lex:pub.leaflet.blocks.website", "lex:pub.leaflet.blocks.math", "lex:pub.leaflet.blocks.code", "lex:pub.leaflet.blocks.horizontalRule", "lex:pub.leaflet.blocks.bskyPost", "lex:pub.leaflet.blocks.page", "lex:pub.leaflet.blocks.poll", "lex:pub.leaflet.blocks.button"];
2128
2133
  };
2129
- readonly contributors: {
2134
+ readonly alignment: {
2135
+ readonly type: "string";
2136
+ readonly knownValues: ["lex:pub.leaflet.pages.linearDocument#textAlignLeft", "lex:pub.leaflet.pages.linearDocument#textAlignCenter", "lex:pub.leaflet.pages.linearDocument#textAlignRight", "lex:pub.leaflet.pages.linearDocument#textAlignJustify"];
2137
+ };
2138
+ };
2139
+ };
2140
+ readonly textAlignLeft: {
2141
+ readonly type: "token";
2142
+ };
2143
+ readonly textAlignCenter: {
2144
+ readonly type: "token";
2145
+ };
2146
+ readonly textAlignRight: {
2147
+ readonly type: "token";
2148
+ };
2149
+ readonly textAlignJustify: {
2150
+ readonly type: "token";
2151
+ };
2152
+ readonly quote: {
2153
+ readonly type: "object";
2154
+ readonly required: ["start", "end"];
2155
+ readonly properties: {
2156
+ readonly start: {
2157
+ readonly type: "ref";
2158
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#position";
2159
+ };
2160
+ readonly end: {
2161
+ readonly type: "ref";
2162
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#position";
2163
+ };
2164
+ };
2165
+ };
2166
+ readonly position: {
2167
+ readonly type: "object";
2168
+ readonly required: ["block", "offset"];
2169
+ readonly properties: {
2170
+ readonly block: {
2130
2171
  readonly type: "array";
2131
- readonly description: "An array of contributor objects, each containing contributor information, weight, and contribution details.";
2132
- readonly maxLength: 1000;
2133
2172
  readonly items: {
2134
- readonly type: "ref";
2135
- readonly ref: "lex:org.hypercerts.claim.activity#contributor";
2173
+ readonly type: "integer";
2136
2174
  };
2137
2175
  };
2138
- readonly workScope: {
2139
- readonly type: "union";
2140
- readonly refs: ["lex:org.hypercerts.workscope.cel", "lex:org.hypercerts.claim.activity#workScopeString"];
2141
- readonly description: "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.";
2176
+ readonly offset: {
2177
+ readonly type: "integer";
2142
2178
  };
2143
- readonly startDate: {
2179
+ };
2180
+ };
2181
+ };
2182
+ };
2183
+ readonly PubLeafletRichtextFacet: {
2184
+ readonly lexicon: 1;
2185
+ readonly id: "pub.leaflet.richtext.facet";
2186
+ readonly defs: {
2187
+ readonly main: {
2188
+ readonly type: "object";
2189
+ readonly description: "Annotation of a sub-string within rich text.";
2190
+ readonly required: ["index", "features"];
2191
+ readonly properties: {
2192
+ readonly index: {
2193
+ readonly type: "ref";
2194
+ readonly ref: "lex:pub.leaflet.richtext.facet#byteSlice";
2195
+ };
2196
+ readonly features: {
2197
+ readonly type: "array";
2198
+ readonly items: {
2199
+ readonly type: "union";
2200
+ readonly refs: ["lex:pub.leaflet.richtext.facet#link", "lex:pub.leaflet.richtext.facet#didMention", "lex:pub.leaflet.richtext.facet#atMention", "lex:pub.leaflet.richtext.facet#code", "lex:pub.leaflet.richtext.facet#highlight", "lex:pub.leaflet.richtext.facet#underline", "lex:pub.leaflet.richtext.facet#strikethrough", "lex:pub.leaflet.richtext.facet#id", "lex:pub.leaflet.richtext.facet#bold", "lex:pub.leaflet.richtext.facet#italic", "lex:pub.leaflet.richtext.facet#footnote"];
2201
+ };
2202
+ };
2203
+ };
2204
+ };
2205
+ readonly byteSlice: {
2206
+ readonly type: "object";
2207
+ readonly description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.";
2208
+ readonly required: ["byteStart", "byteEnd"];
2209
+ readonly properties: {
2210
+ readonly byteStart: {
2211
+ readonly type: "integer";
2212
+ readonly minimum: 0;
2213
+ };
2214
+ readonly byteEnd: {
2215
+ readonly type: "integer";
2216
+ readonly minimum: 0;
2217
+ };
2218
+ };
2219
+ };
2220
+ readonly link: {
2221
+ readonly type: "object";
2222
+ readonly description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.";
2223
+ readonly required: ["uri"];
2224
+ readonly properties: {
2225
+ readonly uri: {
2144
2226
  readonly type: "string";
2145
- readonly format: "datetime";
2146
- readonly description: "When the work began";
2147
2227
  };
2148
- readonly endDate: {
2228
+ };
2229
+ };
2230
+ readonly didMention: {
2231
+ readonly type: "object";
2232
+ readonly description: "Facet feature for mentioning a did.";
2233
+ readonly required: ["did"];
2234
+ readonly properties: {
2235
+ readonly did: {
2149
2236
  readonly type: "string";
2150
- readonly format: "datetime";
2151
- readonly description: "When the work ended";
2237
+ readonly format: "did";
2152
2238
  };
2153
- readonly locations: {
2239
+ };
2240
+ };
2241
+ readonly atMention: {
2242
+ readonly type: "object";
2243
+ readonly description: "Facet feature for mentioning an AT URI.";
2244
+ readonly required: ["atURI"];
2245
+ readonly properties: {
2246
+ readonly atURI: {
2247
+ readonly type: "string";
2248
+ readonly format: "uri";
2249
+ };
2250
+ };
2251
+ };
2252
+ readonly code: {
2253
+ readonly type: "object";
2254
+ readonly description: "Facet feature for inline code.";
2255
+ readonly required: [];
2256
+ readonly properties: {};
2257
+ };
2258
+ readonly highlight: {
2259
+ readonly type: "object";
2260
+ readonly description: "Facet feature for highlighted text.";
2261
+ readonly required: [];
2262
+ readonly properties: {};
2263
+ };
2264
+ readonly underline: {
2265
+ readonly type: "object";
2266
+ readonly description: "Facet feature for underline markup";
2267
+ readonly required: [];
2268
+ readonly properties: {};
2269
+ };
2270
+ readonly strikethrough: {
2271
+ readonly type: "object";
2272
+ readonly description: "Facet feature for strikethrough markup";
2273
+ readonly required: [];
2274
+ readonly properties: {};
2275
+ };
2276
+ readonly id: {
2277
+ readonly type: "object";
2278
+ readonly description: "Facet feature for an identifier. Used for linking to a segment";
2279
+ readonly required: [];
2280
+ readonly properties: {
2281
+ readonly id: {
2282
+ readonly type: "string";
2283
+ };
2284
+ };
2285
+ };
2286
+ readonly bold: {
2287
+ readonly type: "object";
2288
+ readonly description: "Facet feature for bold text";
2289
+ readonly required: [];
2290
+ readonly properties: {};
2291
+ };
2292
+ readonly italic: {
2293
+ readonly type: "object";
2294
+ readonly description: "Facet feature for italic text";
2295
+ readonly required: [];
2296
+ readonly properties: {};
2297
+ };
2298
+ readonly footnote: {
2299
+ readonly type: "object";
2300
+ readonly description: "Facet feature for a footnote reference";
2301
+ readonly required: ["footnoteId", "contentPlaintext"];
2302
+ readonly properties: {
2303
+ readonly footnoteId: {
2304
+ readonly type: "string";
2305
+ };
2306
+ readonly contentPlaintext: {
2307
+ readonly type: "string";
2308
+ };
2309
+ readonly contentFacets: {
2154
2310
  readonly type: "array";
2155
- readonly description: "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.";
2156
- readonly maxLength: 1000;
2157
2311
  readonly items: {
2158
2312
  readonly type: "ref";
2159
- readonly ref: "lex:com.atproto.repo.strongRef";
2313
+ readonly ref: "lex:pub.leaflet.richtext.facet#main";
2160
2314
  };
2161
2315
  };
2162
- readonly rights: {
2163
- readonly type: "ref";
2164
- readonly ref: "lex:com.atproto.repo.strongRef";
2165
- readonly description: "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.";
2166
- };
2167
- readonly createdAt: {
2168
- readonly type: "string";
2169
- readonly format: "datetime";
2170
- readonly description: "Client-declared timestamp when this record was originally created";
2171
- };
2172
2316
  };
2173
2317
  };
2174
2318
  };
2175
- readonly contributor: {
2319
+ };
2320
+ };
2321
+ export declare const schemas: ({
2322
+ readonly lexicon: 1;
2323
+ readonly id: "app.bsky.richtext.facet";
2324
+ readonly defs: {
2325
+ readonly main: {
2176
2326
  readonly type: "object";
2177
- readonly required: ["contributorIdentity"];
2327
+ readonly description: "Annotation of a sub-string within rich text.";
2328
+ readonly required: ["index", "features"];
2178
2329
  readonly properties: {
2179
- readonly contributorIdentity: {
2180
- readonly type: "union";
2181
- readonly refs: ["lex:org.hypercerts.claim.activity#contributorIdentity", "lex:com.atproto.repo.strongRef"];
2182
- readonly 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.";
2183
- };
2184
- readonly contributionWeight: {
2185
- readonly type: "string";
2186
- readonly 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.";
2187
- readonly maxLength: 100;
2330
+ readonly index: {
2331
+ readonly type: "ref";
2332
+ readonly ref: "lex:app.bsky.richtext.facet#byteSlice";
2188
2333
  };
2189
- readonly contributionDetails: {
2190
- readonly type: "union";
2191
- readonly refs: ["lex:org.hypercerts.claim.activity#contributorRole", "lex:com.atproto.repo.strongRef"];
2192
- readonly 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.";
2334
+ readonly features: {
2335
+ readonly type: "array";
2336
+ readonly items: {
2337
+ readonly type: "union";
2338
+ readonly refs: ["lex:app.bsky.richtext.facet#mention", "lex:app.bsky.richtext.facet#link", "lex:app.bsky.richtext.facet#tag"];
2339
+ };
2193
2340
  };
2194
2341
  };
2195
2342
  };
2196
- readonly contributorIdentity: {
2343
+ readonly mention: {
2197
2344
  readonly type: "object";
2198
- readonly description: "Contributor information as a string (DID or identifier).";
2199
- readonly required: ["identity"];
2345
+ readonly description: "Facet feature for mention of another account. The text is usually a handle, including a '@' prefix, but the facet reference is a DID.";
2346
+ readonly required: ["did"];
2200
2347
  readonly properties: {
2201
- readonly identity: {
2348
+ readonly did: {
2202
2349
  readonly type: "string";
2203
- readonly description: "The contributor identity string (DID or identifier).";
2204
- readonly maxLength: 1000;
2205
- readonly maxGraphemes: 100;
2350
+ readonly format: "did";
2206
2351
  };
2207
2352
  };
2208
2353
  };
2209
- readonly contributorRole: {
2354
+ readonly link: {
2210
2355
  readonly type: "object";
2211
- readonly description: "Contribution details as a string.";
2212
- readonly required: ["role"];
2356
+ readonly description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.";
2357
+ readonly required: ["uri"];
2213
2358
  readonly properties: {
2214
- readonly role: {
2359
+ readonly uri: {
2215
2360
  readonly type: "string";
2216
- readonly description: "The contribution role or details.";
2217
- readonly maxLength: 1000;
2218
- readonly maxGraphemes: 100;
2361
+ readonly format: "uri";
2219
2362
  };
2220
2363
  };
2221
2364
  };
2222
- readonly workScopeString: {
2365
+ readonly tag: {
2223
2366
  readonly type: "object";
2224
- readonly description: "A free-form string describing the work scope for simple or legacy scopes.";
2225
- readonly required: ["scope"];
2367
+ readonly description: "Facet feature for a hashtag. The text usually includes a '#' prefix, but the facet reference should not (except in the case of 'double hash tags').";
2368
+ readonly required: ["tag"];
2226
2369
  readonly properties: {
2227
- readonly scope: {
2370
+ readonly tag: {
2228
2371
  readonly type: "string";
2229
- readonly description: "The work scope description string.";
2230
- readonly maxLength: 1000;
2231
- readonly maxGraphemes: 100;
2372
+ readonly maxLength: 640;
2373
+ readonly maxGraphemes: 64;
2374
+ };
2375
+ };
2376
+ };
2377
+ readonly byteSlice: {
2378
+ readonly type: "object";
2379
+ readonly description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.";
2380
+ readonly required: ["byteStart", "byteEnd"];
2381
+ readonly properties: {
2382
+ readonly byteStart: {
2383
+ readonly type: "integer";
2384
+ readonly minimum: 0;
2385
+ };
2386
+ readonly byteEnd: {
2387
+ readonly type: "integer";
2388
+ readonly minimum: 0;
2232
2389
  };
2233
2390
  };
2234
2391
  };
2235
2392
  };
2236
2393
  } | {
2237
2394
  readonly lexicon: 1;
2238
- readonly id: "org.hypercerts.claim.contribution";
2395
+ readonly id: "app.certified.actor.organization";
2239
2396
  readonly defs: {
2240
2397
  readonly main: {
2241
2398
  readonly type: "record";
2242
- readonly description: "Details about a specific contribution including role, description, and timeframe.";
2243
- readonly key: "tid";
2399
+ readonly description: "Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.";
2400
+ readonly key: "literal:self";
2244
2401
  readonly record: {
2245
2402
  readonly type: "object";
2246
2403
  readonly required: ["createdAt"];
2247
2404
  readonly properties: {
2248
- readonly role: {
2249
- readonly type: "string";
2250
- readonly description: "Role or title of the contributor.";
2251
- readonly maxLength: 100;
2405
+ readonly organizationType: {
2406
+ readonly type: "array";
2407
+ readonly description: "Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative').";
2408
+ readonly items: {
2409
+ readonly type: "string";
2410
+ readonly maxLength: 128;
2411
+ readonly maxGraphemes: 100;
2412
+ };
2413
+ readonly maxLength: 10;
2252
2414
  };
2253
- readonly contributionDescription: {
2254
- readonly type: "string";
2255
- readonly description: "Description of what the contribution concretely involved.";
2256
- readonly maxLength: 10000;
2257
- readonly maxGraphemes: 1000;
2415
+ readonly urls: {
2416
+ readonly type: "array";
2417
+ readonly description: "Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL.";
2418
+ readonly items: {
2419
+ readonly type: "ref";
2420
+ readonly ref: "lex:app.certified.actor.organization#urlItem";
2421
+ };
2258
2422
  };
2259
- readonly startDate: {
2260
- readonly type: "string";
2261
- readonly format: "datetime";
2262
- readonly description: "When this contribution started. Should fall within the parent hypercert's timeframe.";
2423
+ readonly location: {
2424
+ readonly type: "ref";
2425
+ readonly ref: "lex:com.atproto.repo.strongRef";
2426
+ readonly description: "A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location.";
2263
2427
  };
2264
- readonly endDate: {
2428
+ readonly foundedDate: {
2265
2429
  readonly type: "string";
2266
2430
  readonly format: "datetime";
2267
- readonly description: "When this contribution finished. Should fall within the parent hypercert's timeframe.";
2431
+ readonly 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.";
2268
2432
  };
2269
2433
  readonly createdAt: {
2270
2434
  readonly type: "string";
@@ -2274,38 +2438,76 @@ export declare const schemas: ({
2274
2438
  };
2275
2439
  };
2276
2440
  };
2441
+ readonly urlItem: {
2442
+ readonly type: "object";
2443
+ readonly description: "A labeled URL reference.";
2444
+ readonly required: ["url"];
2445
+ readonly properties: {
2446
+ readonly url: {
2447
+ readonly type: "string";
2448
+ readonly format: "uri";
2449
+ readonly description: "The URL.";
2450
+ readonly maxLength: 10000;
2451
+ readonly maxGraphemes: 2048;
2452
+ };
2453
+ readonly label: {
2454
+ readonly type: "string";
2455
+ readonly description: "Optional human-readable label for this URL (e.g. 'Support page', 'Donation page').";
2456
+ readonly maxLength: 640;
2457
+ readonly maxGraphemes: 64;
2458
+ };
2459
+ };
2460
+ };
2277
2461
  };
2278
2462
  } | {
2279
2463
  readonly lexicon: 1;
2280
- readonly id: "org.hypercerts.claim.contributorInformation";
2464
+ readonly id: "app.certified.actor.profile";
2281
2465
  readonly defs: {
2282
2466
  readonly main: {
2283
2467
  readonly type: "record";
2284
- readonly description: "Contributor information including identifier, display name, and image.";
2285
- readonly key: "tid";
2468
+ readonly description: "A declaration of a Certified account profile.";
2469
+ readonly key: "literal:self";
2286
2470
  readonly record: {
2287
2471
  readonly type: "object";
2288
2472
  readonly required: ["createdAt"];
2289
2473
  readonly properties: {
2290
- readonly identifier: {
2474
+ readonly displayName: {
2291
2475
  readonly type: "string";
2292
- readonly description: "DID (did:plc:...) or URI to a social profile of the contributor.";
2293
- readonly maxLength: 2048;
2476
+ readonly description: "Display name for the account";
2477
+ readonly maxGraphemes: 64;
2478
+ readonly maxLength: 640;
2294
2479
  };
2295
- readonly displayName: {
2480
+ readonly description: {
2296
2481
  readonly type: "string";
2297
- readonly description: "Human-readable name for the contributor as it should appear in UI.";
2298
- readonly maxLength: 100;
2482
+ readonly description: "Free-form profile description text.";
2483
+ readonly maxGraphemes: 256;
2484
+ readonly maxLength: 2560;
2299
2485
  };
2300
- readonly image: {
2486
+ readonly pronouns: {
2487
+ readonly type: "string";
2488
+ readonly description: "Free-form pronouns text.";
2489
+ readonly maxGraphemes: 20;
2490
+ readonly maxLength: 200;
2491
+ };
2492
+ readonly website: {
2493
+ readonly type: "string";
2494
+ readonly format: "uri";
2495
+ readonly description: "Account website URL";
2496
+ };
2497
+ readonly avatar: {
2301
2498
  readonly type: "union";
2302
2499
  readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2303
- readonly description: "The contributor visual representation as a URI or image blob.";
2500
+ readonly description: "Small image to be displayed next to posts from account. AKA, 'profile picture'";
2501
+ };
2502
+ readonly banner: {
2503
+ readonly type: "union";
2504
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#largeImage"];
2505
+ readonly description: "Larger horizontal image to display behind profile view.";
2304
2506
  };
2305
2507
  readonly createdAt: {
2306
2508
  readonly type: "string";
2307
2509
  readonly format: "datetime";
2308
- readonly description: "Client-declared timestamp when this record was originally created.";
2510
+ readonly description: "Client-declared timestamp when this record was originally created";
2309
2511
  };
2310
2512
  };
2311
2513
  };
@@ -2313,36 +2515,36 @@ export declare const schemas: ({
2313
2515
  };
2314
2516
  } | {
2315
2517
  readonly lexicon: 1;
2316
- readonly id: "org.hypercerts.claim.rights";
2518
+ readonly id: "app.certified.badge.award";
2317
2519
  readonly defs: {
2318
2520
  readonly main: {
2319
2521
  readonly type: "record";
2320
- readonly 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.";
2522
+ readonly description: "Records a badge award to a user, project, or activity claim.";
2321
2523
  readonly key: "tid";
2322
2524
  readonly record: {
2323
2525
  readonly type: "object";
2324
- readonly required: ["rightsName", "rightsType", "rightsDescription", "createdAt"];
2526
+ readonly required: ["badge", "subject", "createdAt"];
2325
2527
  readonly properties: {
2326
- readonly rightsName: {
2327
- readonly type: "string";
2328
- readonly description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')";
2329
- readonly maxLength: 100;
2528
+ readonly badge: {
2529
+ readonly type: "ref";
2530
+ readonly ref: "lex:com.atproto.repo.strongRef";
2531
+ readonly description: "Strong reference to the badge definition at the time of award. The record referenced must conform with the lexicon app.certified.badge.definition.";
2330
2532
  };
2331
- readonly rightsType: {
2332
- readonly type: "string";
2333
- readonly description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search";
2334
- readonly maxLength: 10;
2533
+ readonly subject: {
2534
+ readonly type: "union";
2535
+ readonly description: "Entity the badge award is for (either an account DID or any specific AT Protocol record), e.g. a user, a project, or a specific activity claim.";
2536
+ readonly refs: ["lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
2335
2537
  };
2336
- readonly rightsDescription: {
2538
+ readonly note: {
2337
2539
  readonly type: "string";
2338
- readonly description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions";
2339
- readonly maxLength: 10000;
2340
- readonly maxGraphemes: 1000;
2540
+ readonly description: "Optional statement explaining the reason for this badge award.";
2541
+ readonly maxLength: 500;
2341
2542
  };
2342
- readonly attachment: {
2343
- readonly type: "union";
2344
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
2345
- readonly description: "An attachment to define the rights further, e.g. a legal document.";
2543
+ readonly url: {
2544
+ readonly type: "string";
2545
+ readonly format: "uri";
2546
+ readonly description: "Optional URL the badge award links to.";
2547
+ readonly maxLength: 2048;
2346
2548
  };
2347
2549
  readonly createdAt: {
2348
2550
  readonly type: "string";
@@ -2355,62 +2557,48 @@ export declare const schemas: ({
2355
2557
  };
2356
2558
  } | {
2357
2559
  readonly lexicon: 1;
2358
- readonly id: "org.hypercerts.collection";
2560
+ readonly id: "app.certified.badge.definition";
2359
2561
  readonly defs: {
2360
2562
  readonly main: {
2361
2563
  readonly type: "record";
2362
- readonly description: "A collection/group of items (activities and/or other collections). Collections support recursive nesting.";
2564
+ readonly description: "Defines a badge that can be awarded via badge award records to users, projects, or activity claims.";
2363
2565
  readonly key: "tid";
2364
2566
  readonly record: {
2365
2567
  readonly type: "object";
2366
- readonly required: ["title", "createdAt"];
2568
+ readonly required: ["title", "badgeType", "createdAt"];
2367
2569
  readonly properties: {
2368
- readonly type: {
2570
+ readonly badgeType: {
2369
2571
  readonly type: "string";
2370
- readonly description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.";
2371
- readonly maxLength: 64;
2572
+ readonly description: "Category of the badge. Values beyond the known set are permitted.";
2573
+ readonly knownValues: ["endorsement", "verification", "participation", "certification", "affiliation", "recognition"];
2574
+ readonly maxLength: 100;
2372
2575
  };
2373
2576
  readonly title: {
2374
2577
  readonly type: "string";
2375
- readonly description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')";
2376
- readonly maxLength: 800;
2377
- readonly maxGraphemes: 80;
2578
+ readonly description: "Human-readable title of the badge.";
2579
+ readonly maxLength: 256;
2378
2580
  };
2379
- readonly shortDescription: {
2380
- readonly type: "string";
2381
- readonly maxLength: 3000;
2382
- readonly maxGraphemes: 300;
2383
- readonly description: "Short summary of this collection, suitable for previews and list views";
2581
+ readonly icon: {
2582
+ readonly type: "blob";
2583
+ readonly description: "Icon representing the badge, stored as a blob for compact visual display.";
2584
+ readonly accept: ["image/png", "image/jpeg", "image/webp", "image/svg+xml"];
2585
+ readonly maxSize: 1048576;
2384
2586
  };
2385
2587
  readonly description: {
2386
- readonly type: "ref";
2387
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
2388
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
2389
- };
2390
- readonly avatar: {
2391
- readonly type: "union";
2392
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2393
- readonly description: "The collection's avatar/profile image as a URI or image blob.";
2394
- };
2395
- readonly banner: {
2396
- readonly type: "union";
2397
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#largeImage"];
2398
- readonly description: "Larger horizontal image to display behind the collection view.";
2588
+ readonly type: "string";
2589
+ readonly description: "Optional short statement describing what the badge represents.";
2590
+ readonly maxLength: 5000;
2591
+ readonly maxGraphemes: 500;
2399
2592
  };
2400
- readonly items: {
2593
+ readonly allowedIssuers: {
2401
2594
  readonly type: "array";
2402
- readonly description: "Array of items in this collection with optional weights.";
2403
- readonly maxLength: 1000;
2595
+ readonly description: "Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.";
2596
+ readonly maxLength: 100;
2404
2597
  readonly items: {
2405
2598
  readonly type: "ref";
2406
- readonly ref: "lex:org.hypercerts.collection#item";
2599
+ readonly ref: "lex:app.certified.defs#did";
2407
2600
  };
2408
2601
  };
2409
- readonly location: {
2410
- readonly type: "ref";
2411
- readonly ref: "lex:com.atproto.repo.strongRef";
2412
- readonly description: "A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location.";
2413
- };
2414
2602
  readonly createdAt: {
2415
2603
  readonly type: "string";
2416
2604
  readonly format: "datetime";
@@ -2419,59 +2607,38 @@ export declare const schemas: ({
2419
2607
  };
2420
2608
  };
2421
2609
  };
2422
- readonly item: {
2423
- readonly type: "object";
2424
- readonly required: ["itemIdentifier"];
2425
- readonly properties: {
2426
- readonly itemIdentifier: {
2427
- readonly type: "ref";
2428
- readonly ref: "lex:com.atproto.repo.strongRef";
2429
- readonly description: "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection).";
2430
- };
2431
- readonly itemWeight: {
2432
- readonly type: "string";
2433
- readonly 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.";
2434
- readonly maxLength: 100;
2435
- };
2436
- };
2437
- };
2438
2610
  };
2439
2611
  } | {
2440
2612
  readonly lexicon: 1;
2441
- readonly id: "org.hypercerts.context.acknowledgement";
2613
+ readonly id: "app.certified.badge.response";
2442
2614
  readonly defs: {
2443
2615
  readonly main: {
2444
2616
  readonly type: "record";
2445
- readonly 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.";
2617
+ readonly description: "Recipient response to a badge award.";
2446
2618
  readonly key: "tid";
2447
2619
  readonly record: {
2448
2620
  readonly type: "object";
2449
- readonly required: ["subject", "acknowledged", "createdAt"];
2621
+ readonly required: ["badgeAward", "response", "createdAt"];
2450
2622
  readonly properties: {
2451
- readonly subject: {
2623
+ readonly badgeAward: {
2452
2624
  readonly type: "ref";
2453
2625
  readonly ref: "lex:com.atproto.repo.strongRef";
2454
- readonly description: "The record being acknowledged (e.g. an activity, a contributor information record, an evaluation).";
2455
- };
2456
- readonly context: {
2457
- readonly type: "union";
2458
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:com.atproto.repo.strongRef"];
2459
- readonly 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.";
2626
+ readonly description: "Strong reference to the badge award being responded to. The record referenced must conform with the lexicon app.certified.badge.award.";
2460
2627
  };
2461
- readonly acknowledged: {
2462
- readonly type: "boolean";
2463
- readonly description: "Whether the relationship is acknowledged (true) or rejected (false).";
2628
+ readonly response: {
2629
+ readonly type: "string";
2630
+ readonly knownValues: ["accepted", "rejected"];
2631
+ readonly description: "The recipient’s response for the badge (accepted or rejected).";
2464
2632
  };
2465
- readonly comment: {
2633
+ readonly weight: {
2466
2634
  readonly type: "string";
2467
- readonly description: "Optional plain-text comment providing additional context or reasoning.";
2468
- readonly maxLength: 10000;
2469
- readonly maxGraphemes: 1000;
2635
+ readonly description: "Optional relative weight for accepted badges, assigned by the recipient.";
2636
+ readonly maxLength: 50;
2470
2637
  };
2471
2638
  readonly createdAt: {
2472
2639
  readonly type: "string";
2473
2640
  readonly format: "datetime";
2474
- readonly description: "Client-declared timestamp when this record was originally created.";
2641
+ readonly description: "Client-declared timestamp when this record was originally created";
2475
2642
  };
2476
2643
  };
2477
2644
  };
@@ -2479,67 +2646,45 @@ export declare const schemas: ({
2479
2646
  };
2480
2647
  } | {
2481
2648
  readonly lexicon: 1;
2482
- readonly id: "org.hypercerts.context.attachment";
2649
+ readonly id: "app.certified.defs";
2650
+ readonly description: "Common type definitions used across certified protocols.";
2651
+ readonly defs: {
2652
+ readonly did: {
2653
+ readonly type: "object";
2654
+ readonly description: "A Decentralized Identifier (DID) string.";
2655
+ readonly required: ["did"];
2656
+ readonly properties: {
2657
+ readonly did: {
2658
+ readonly type: "string";
2659
+ readonly format: "did";
2660
+ readonly description: "The DID string value.";
2661
+ readonly maxLength: 256;
2662
+ };
2663
+ };
2664
+ };
2665
+ };
2666
+ } | {
2667
+ readonly lexicon: 1;
2668
+ readonly id: "app.certified.link.evm";
2483
2669
  readonly defs: {
2484
2670
  readonly main: {
2485
2671
  readonly type: "record";
2486
- readonly description: "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).";
2487
- readonly key: "tid";
2672
+ readonly description: "A verifiable link between an ATProto DID and an EVM wallet address, proven via a cryptographic signature. Currently supports EOA wallets via EIP-712 typed data signatures; the proof field is an open union to allow future signature methods.";
2673
+ readonly key: "any";
2488
2674
  readonly record: {
2489
2675
  readonly type: "object";
2490
- readonly required: ["title", "createdAt"];
2676
+ readonly required: ["address", "proof", "createdAt"];
2491
2677
  readonly properties: {
2492
- readonly subjects: {
2493
- readonly type: "array";
2494
- readonly 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.";
2495
- readonly items: {
2496
- readonly type: "ref";
2497
- readonly ref: "lex:com.atproto.repo.strongRef";
2498
- };
2499
- readonly maxLength: 100;
2500
- };
2501
- readonly contentType: {
2502
- readonly type: "string";
2503
- readonly maxLength: 64;
2504
- readonly description: "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.";
2505
- };
2506
- readonly content: {
2507
- readonly type: "array";
2508
- readonly description: "The files, documents, or external references included in this attachment record.";
2509
- readonly items: {
2510
- readonly type: "union";
2511
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
2512
- };
2513
- readonly maxLength: 100;
2514
- };
2515
- readonly title: {
2516
- readonly type: "string";
2517
- readonly maxLength: 256;
2518
- readonly description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')";
2519
- };
2520
- readonly shortDescription: {
2678
+ readonly address: {
2521
2679
  readonly type: "string";
2522
- readonly description: "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
2523
- readonly maxLength: 3000;
2524
- readonly maxGraphemes: 300;
2525
- };
2526
- readonly shortDescriptionFacets: {
2527
- readonly type: "array";
2528
- readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
2529
- readonly items: {
2530
- readonly type: "ref";
2531
- readonly ref: "lex:app.bsky.richtext.facet";
2532
- };
2533
- };
2534
- readonly description: {
2535
- readonly type: "ref";
2536
- readonly ref: "lex:pub.leaflet.pages.linearDocument#main";
2537
- readonly description: "Rich-text description, represented as a Leaflet linear document.";
2680
+ readonly description: "EVM wallet address (0x-prefixed, with EIP-55 checksum recommended).";
2681
+ readonly minLength: 42;
2682
+ readonly maxLength: 42;
2538
2683
  };
2539
- readonly location: {
2540
- readonly type: "ref";
2541
- readonly ref: "lex:com.atproto.repo.strongRef";
2542
- readonly 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.";
2684
+ readonly proof: {
2685
+ readonly type: "union";
2686
+ readonly refs: ["lex:app.certified.link.evm#eip712Proof"];
2687
+ readonly description: "Cryptographic proof of wallet ownership. The union is open to allow future proof methods (e.g. ERC-1271, ERC-6492). Each variant bundles its signature with the corresponding message format.";
2543
2688
  };
2544
2689
  readonly createdAt: {
2545
2690
  readonly type: "string";
@@ -2549,191 +2694,107 @@ export declare const schemas: ({
2549
2694
  };
2550
2695
  };
2551
2696
  };
2552
- };
2553
- } | {
2554
- readonly lexicon: 1;
2555
- readonly id: "org.hypercerts.context.evaluation";
2556
- readonly defs: {
2557
- readonly main: {
2558
- readonly type: "record";
2559
- readonly description: "An evaluation of a hypercert record (e.g. an activity and its impact).";
2560
- readonly key: "tid";
2561
- readonly record: {
2562
- readonly type: "object";
2563
- readonly required: ["evaluators", "summary", "createdAt"];
2564
- readonly properties: {
2565
- readonly subject: {
2566
- readonly type: "ref";
2567
- readonly ref: "lex:com.atproto.repo.strongRef";
2568
- readonly description: "A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)";
2569
- };
2570
- readonly evaluators: {
2571
- readonly type: "array";
2572
- readonly description: "DIDs of the evaluators";
2573
- readonly items: {
2574
- readonly type: "ref";
2575
- readonly ref: "lex:app.certified.defs#did";
2576
- };
2577
- readonly maxLength: 1000;
2578
- };
2579
- readonly content: {
2580
- readonly type: "array";
2581
- readonly description: "Evaluation data (URIs or blobs) containing detailed reports or methodology";
2582
- readonly items: {
2583
- readonly type: "union";
2584
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
2585
- };
2586
- readonly maxLength: 100;
2587
- };
2588
- readonly measurements: {
2589
- readonly type: "array";
2590
- readonly description: "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement";
2591
- readonly items: {
2592
- readonly type: "ref";
2593
- readonly ref: "lex:com.atproto.repo.strongRef";
2594
- };
2595
- readonly maxLength: 100;
2596
- };
2597
- readonly summary: {
2598
- readonly type: "string";
2599
- readonly description: "Brief evaluation summary";
2600
- readonly maxLength: 5000;
2601
- readonly maxGraphemes: 1000;
2602
- };
2603
- readonly score: {
2604
- readonly type: "ref";
2605
- readonly ref: "lex:org.hypercerts.context.evaluation#score";
2606
- readonly description: "Optional overall score for this evaluation on a numeric scale.";
2607
- };
2608
- readonly location: {
2609
- readonly type: "ref";
2610
- readonly ref: "lex:com.atproto.repo.strongRef";
2611
- readonly description: "An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location.";
2612
- };
2613
- readonly createdAt: {
2614
- readonly type: "string";
2615
- readonly format: "datetime";
2616
- readonly description: "Client-declared timestamp when this record was originally created";
2617
- };
2697
+ readonly eip712Proof: {
2698
+ readonly type: "object";
2699
+ readonly description: "EOA wallet ownership proof via EIP-712 typed data signature. Contains both the structured message that was signed and the resulting signature.";
2700
+ readonly required: ["signature", "message"];
2701
+ readonly properties: {
2702
+ readonly signature: {
2703
+ readonly type: "string";
2704
+ readonly description: "ECDSA signature over the EIP-712 hash (hex-encoded with 0x prefix, 64 or 65 bytes).";
2705
+ readonly minLength: 130;
2706
+ readonly maxLength: 132;
2707
+ };
2708
+ readonly message: {
2709
+ readonly type: "ref";
2710
+ readonly ref: "lex:app.certified.link.evm#eip712Message";
2711
+ readonly description: "The EIP-712 structured message fields that were signed.";
2618
2712
  };
2619
2713
  };
2620
2714
  };
2621
- readonly score: {
2715
+ readonly eip712Message: {
2622
2716
  readonly type: "object";
2623
- readonly description: "Overall score for an evaluation on a numeric scale.";
2624
- readonly required: ["min", "max", "value"];
2717
+ readonly description: "The EIP-712 typed data message that was signed by the wallet. Contains the fields binding an ATProto DID to an EVM address on a specific chain.";
2718
+ readonly required: ["did", "evmAddress", "chainId", "timestamp", "nonce"];
2625
2719
  readonly properties: {
2626
- readonly min: {
2627
- readonly type: "integer";
2628
- readonly description: "Minimum value of the scale, e.g. 0 or 1.";
2720
+ readonly did: {
2721
+ readonly type: "string";
2722
+ readonly format: "did";
2723
+ readonly description: "The ATProto DID being linked to the EVM address.";
2724
+ readonly maxLength: 256;
2629
2725
  };
2630
- readonly max: {
2631
- readonly type: "integer";
2632
- readonly description: "Maximum value of the scale, e.g. 5 or 10.";
2726
+ readonly evmAddress: {
2727
+ readonly type: "string";
2728
+ readonly description: "The EVM wallet address (must match the top-level address field).";
2729
+ readonly minLength: 42;
2730
+ readonly maxLength: 42;
2633
2731
  };
2634
- readonly value: {
2635
- readonly type: "integer";
2636
- readonly description: "Score within the inclusive range [min, max].";
2732
+ readonly chainId: {
2733
+ readonly type: "string";
2734
+ readonly description: "EVM chain ID as string (bigint serialized). Identifies which chain was used for signing; for EOA wallets the identity link applies across all EVM-compatible chains.";
2735
+ readonly minLength: 1;
2736
+ readonly maxLength: 78;
2737
+ };
2738
+ readonly timestamp: {
2739
+ readonly type: "string";
2740
+ readonly description: "Unix timestamp when the attestation was created (bigint serialized).";
2741
+ readonly minLength: 1;
2742
+ readonly maxLength: 78;
2743
+ };
2744
+ readonly nonce: {
2745
+ readonly type: "string";
2746
+ readonly description: "Replay-protection nonce (bigint serialized).";
2747
+ readonly minLength: 1;
2748
+ readonly maxLength: 78;
2637
2749
  };
2638
2750
  };
2639
2751
  };
2640
2752
  };
2641
2753
  } | {
2642
2754
  readonly lexicon: 1;
2643
- readonly id: "org.hypercerts.context.measurement";
2755
+ readonly id: "app.certified.location";
2644
2756
  readonly defs: {
2645
2757
  readonly main: {
2646
2758
  readonly type: "record";
2647
- readonly description: "Measurement data related to one or more records (e.g. activities, projects, etc.).";
2759
+ readonly description: "A location reference";
2648
2760
  readonly key: "tid";
2649
2761
  readonly record: {
2650
2762
  readonly type: "object";
2651
- readonly required: ["metric", "unit", "value", "createdAt"];
2763
+ readonly required: ["lpVersion", "srs", "locationType", "location", "createdAt"];
2652
2764
  readonly properties: {
2653
- readonly subjects: {
2654
- readonly type: "array";
2655
- readonly description: "Strong references to the records this measurement refers to (e.g. activities, projects, or claims).";
2656
- readonly items: {
2657
- readonly type: "ref";
2658
- readonly ref: "lex:com.atproto.repo.strongRef";
2659
- };
2660
- readonly maxLength: 100;
2661
- };
2662
- readonly metric: {
2663
- readonly type: "string";
2664
- readonly description: "The metric being measured, e.g. forest area restored, number of users, etc.";
2665
- readonly maxLength: 500;
2666
- };
2667
- readonly unit: {
2668
- readonly type: "string";
2669
- readonly description: "The unit of the measured value (e.g. kg CO₂e, hectares, %, index score).";
2670
- readonly maxLength: 50;
2671
- };
2672
- readonly value: {
2673
- readonly type: "string";
2674
- readonly description: "The measured value as a numeric string (e.g. '1234.56')";
2675
- readonly maxLength: 500;
2676
- };
2677
- readonly startDate: {
2765
+ readonly lpVersion: {
2678
2766
  readonly type: "string";
2679
- readonly format: "datetime";
2680
- readonly description: "The start date and time when the measurement began.";
2767
+ readonly description: "The version of the Location Protocol";
2768
+ readonly maxLength: 10;
2681
2769
  };
2682
- readonly endDate: {
2770
+ readonly srs: {
2683
2771
  readonly type: "string";
2684
- readonly format: "datetime";
2685
- readonly description: "The end date and time when the measurement ended. For one-time measurements, this should equal the start date.";
2686
- };
2687
- readonly locations: {
2688
- readonly type: "array";
2689
- readonly description: "Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon.";
2690
- readonly items: {
2691
- readonly type: "ref";
2692
- readonly ref: "lex:com.atproto.repo.strongRef";
2693
- };
2772
+ readonly format: "uri";
2773
+ readonly description: "The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system.";
2694
2774
  readonly maxLength: 100;
2695
2775
  };
2696
- readonly methodType: {
2697
- readonly type: "string";
2698
- readonly description: "Short identifier for the measurement methodology";
2699
- readonly maxLength: 30;
2700
- };
2701
- readonly methodURI: {
2776
+ readonly locationType: {
2702
2777
  readonly type: "string";
2703
- readonly format: "uri";
2704
- readonly description: "URI to methodology documentation, standard protocol, or measurement procedure";
2705
- };
2706
- readonly evidenceURI: {
2707
- readonly type: "array";
2708
- readonly description: "URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets)";
2709
- readonly items: {
2710
- readonly type: "string";
2711
- readonly format: "uri";
2712
- };
2713
- readonly maxLength: 50;
2778
+ readonly 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";
2779
+ readonly knownValues: ["coordinate-decimal", "geojson-point", "geojson", "h3", "geohash", "wkt", "address", "scaledCoordinates"];
2780
+ readonly maxLength: 20;
2714
2781
  };
2715
- readonly measurers: {
2716
- readonly type: "array";
2717
- readonly description: "DIDs of the entities that performed this measurement";
2718
- readonly items: {
2719
- readonly type: "ref";
2720
- readonly ref: "lex:app.certified.defs#did";
2721
- };
2722
- readonly maxLength: 100;
2782
+ readonly location: {
2783
+ readonly type: "union";
2784
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob", "lex:app.certified.location#string"];
2785
+ readonly description: "The location of where the work was performed as a URI, blob, or inline string.";
2723
2786
  };
2724
- readonly comment: {
2787
+ readonly name: {
2725
2788
  readonly type: "string";
2726
- readonly description: "Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`.";
2727
- readonly maxLength: 3000;
2728
- readonly maxGraphemes: 300;
2789
+ readonly description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')";
2790
+ readonly maxLength: 1000;
2791
+ readonly maxGraphemes: 100;
2729
2792
  };
2730
- readonly commentFacets: {
2731
- readonly type: "array";
2732
- readonly description: "Rich text annotations for `comment` (mentions, URLs, hashtags, etc).";
2733
- readonly items: {
2734
- readonly type: "ref";
2735
- readonly ref: "lex:app.bsky.richtext.facet";
2736
- };
2793
+ readonly description: {
2794
+ readonly type: "string";
2795
+ readonly description: "Additional context about this location, such as its significance to the work or specific boundaries";
2796
+ readonly maxLength: 2000;
2797
+ readonly maxGraphemes: 500;
2737
2798
  };
2738
2799
  readonly createdAt: {
2739
2800
  readonly type: "string";
@@ -2743,272 +2804,458 @@ export declare const schemas: ({
2743
2804
  };
2744
2805
  };
2745
2806
  };
2807
+ readonly string: {
2808
+ readonly type: "object";
2809
+ readonly required: ["string"];
2810
+ readonly description: "A location represented as a string, e.g. coordinates or a small GeoJSON string.";
2811
+ readonly properties: {
2812
+ readonly string: {
2813
+ readonly type: "string";
2814
+ readonly description: "The location string value";
2815
+ readonly maxLength: 10000;
2816
+ readonly maxGraphemes: 1000;
2817
+ };
2818
+ };
2819
+ };
2746
2820
  };
2747
2821
  } | {
2748
2822
  readonly lexicon: 1;
2749
- readonly id: "org.hypercerts.defs";
2750
- readonly description: "Common type definitions used across all Hypercerts protocols.";
2823
+ readonly id: "com.atproto.repo.strongRef";
2824
+ readonly description: "A URI with a content-hash fingerprint.";
2751
2825
  readonly defs: {
2752
- readonly uri: {
2826
+ readonly main: {
2753
2827
  readonly type: "object";
2754
- readonly required: ["uri"];
2755
- readonly description: "Object containing a URI to external data";
2828
+ readonly required: ["uri", "cid"];
2756
2829
  readonly properties: {
2757
2830
  readonly uri: {
2758
2831
  readonly type: "string";
2759
- readonly format: "uri";
2760
- readonly description: "URI to external data";
2832
+ readonly format: "at-uri";
2833
+ };
2834
+ readonly cid: {
2835
+ readonly type: "string";
2836
+ readonly format: "cid";
2761
2837
  };
2762
2838
  };
2763
2839
  };
2764
- readonly smallBlob: {
2840
+ };
2841
+ } | {
2842
+ readonly lexicon: 1;
2843
+ readonly id: "org.hyperboards.board";
2844
+ readonly defs: {
2845
+ readonly main: {
2846
+ readonly type: "record";
2847
+ readonly description: "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.";
2848
+ readonly key: "tid";
2849
+ readonly record: {
2850
+ readonly type: "object";
2851
+ readonly required: ["subject", "createdAt"];
2852
+ readonly properties: {
2853
+ readonly subject: {
2854
+ readonly type: "ref";
2855
+ readonly ref: "lex:com.atproto.repo.strongRef";
2856
+ readonly description: "Reference to the org.hypercerts.claim.activity or org.hypercerts.collection this board visualizes.";
2857
+ };
2858
+ readonly config: {
2859
+ readonly type: "ref";
2860
+ readonly ref: "lex:org.hyperboards.board#boardConfig";
2861
+ readonly description: "Board-level visual configuration (background, colors, aspect ratio).";
2862
+ };
2863
+ readonly contributorConfigs: {
2864
+ readonly type: "array";
2865
+ readonly description: "Per-contributor configuration entries for this board.";
2866
+ readonly maxLength: 1000;
2867
+ readonly items: {
2868
+ readonly type: "ref";
2869
+ readonly ref: "lex:org.hyperboards.board#contributorConfig";
2870
+ };
2871
+ };
2872
+ readonly createdAt: {
2873
+ readonly type: "string";
2874
+ readonly format: "datetime";
2875
+ readonly description: "Client-declared timestamp when this record was originally created.";
2876
+ };
2877
+ };
2878
+ };
2879
+ };
2880
+ readonly boardConfig: {
2765
2881
  readonly type: "object";
2766
- readonly required: ["blob"];
2767
- readonly description: "Object containing a blob to external data";
2882
+ readonly description: "Visual configuration for a hyperboard's background, colors, and layout.";
2768
2883
  readonly properties: {
2769
- readonly blob: {
2770
- readonly type: "blob";
2771
- readonly accept: ["*/*"];
2772
- readonly maxSize: 10485760;
2773
- readonly description: "Blob to external data (up to 10MB)";
2884
+ readonly backgroundType: {
2885
+ readonly type: "string";
2886
+ readonly description: "Type of background content.";
2887
+ readonly knownValues: ["image", "iframe"];
2888
+ readonly maxLength: 10;
2774
2889
  };
2775
- };
2776
- };
2777
- readonly largeBlob: {
2778
- readonly type: "object";
2779
- readonly required: ["blob"];
2780
- readonly description: "Object containing a blob to external data";
2781
- readonly properties: {
2782
- readonly blob: {
2783
- readonly type: "blob";
2784
- readonly accept: ["*/*"];
2785
- readonly maxSize: 104857600;
2786
- readonly description: "Blob to external data (up to 100MB)";
2890
+ readonly backgroundImage: {
2891
+ readonly type: "union";
2892
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2893
+ readonly description: "Background image as a URI or image blob.";
2894
+ };
2895
+ readonly backgroundIframeUrl: {
2896
+ readonly type: "string";
2897
+ readonly format: "uri";
2898
+ readonly description: "URI of the background iframe.";
2899
+ readonly maxLength: 2048;
2900
+ };
2901
+ readonly backgroundGrayscale: {
2902
+ readonly type: "boolean";
2903
+ readonly description: "Whether the background is rendered in grayscale. Default: true.";
2904
+ };
2905
+ readonly backgroundOpacity: {
2906
+ readonly type: "integer";
2907
+ readonly description: "Background opacity as a percentage (0–100).";
2908
+ readonly minimum: 0;
2909
+ readonly maximum: 100;
2910
+ };
2911
+ readonly backgroundColor: {
2912
+ readonly type: "string";
2913
+ readonly description: "Background color as a hex string (e.g. '#ffffff').";
2914
+ readonly maxLength: 20;
2915
+ };
2916
+ readonly borderColor: {
2917
+ readonly type: "string";
2918
+ readonly description: "Border color as a hex string (e.g. '#000000').";
2919
+ readonly maxLength: 20;
2920
+ };
2921
+ readonly grayscaleImages: {
2922
+ readonly type: "boolean";
2923
+ readonly description: "Whether contributor images are rendered in grayscale. Default: false.";
2924
+ };
2925
+ readonly imageShape: {
2926
+ readonly type: "string";
2927
+ readonly description: "Shape used to crop contributor images on this board.";
2928
+ readonly knownValues: ["circular", "square"];
2929
+ readonly maxLength: 20;
2930
+ };
2931
+ readonly aspectRatio: {
2932
+ readonly type: "string";
2933
+ readonly description: "Display aspect ratio of the board.";
2934
+ readonly knownValues: ["16:9", "4:3", "1:1"];
2935
+ readonly maxLength: 10;
2787
2936
  };
2788
2937
  };
2789
2938
  };
2790
- readonly smallImage: {
2939
+ readonly contributorConfig: {
2791
2940
  readonly type: "object";
2792
- readonly required: ["image"];
2793
- readonly description: "Object containing a small image";
2941
+ readonly 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.";
2942
+ readonly required: ["contributor"];
2794
2943
  readonly properties: {
2944
+ readonly contributor: {
2945
+ readonly type: "union";
2946
+ readonly refs: ["lex:com.atproto.repo.strongRef", "lex:org.hypercerts.claim.activity#contributorIdentity"];
2947
+ readonly 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.";
2948
+ };
2949
+ readonly override: {
2950
+ readonly type: "boolean";
2951
+ readonly 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.";
2952
+ };
2953
+ readonly displayName: {
2954
+ readonly type: "string";
2955
+ readonly description: "Display name for this contributor on this board.";
2956
+ readonly maxLength: 640;
2957
+ readonly maxGraphemes: 64;
2958
+ };
2795
2959
  readonly image: {
2796
- readonly type: "blob";
2797
- readonly accept: ["image/jpeg", "image/jpg", "image/png", "image/webp"];
2798
- readonly maxSize: 5242880;
2799
- readonly description: "Image (up to 5MB)";
2960
+ readonly type: "union";
2961
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2962
+ readonly description: "Avatar or face image for this contributor on this board, as a URI or image blob.";
2800
2963
  };
2801
- };
2802
- };
2803
- readonly smallVideo: {
2804
- readonly type: "object";
2805
- readonly required: ["video"];
2806
- readonly description: "Object containing a small video";
2807
- readonly properties: {
2808
2964
  readonly video: {
2809
- readonly type: "blob";
2810
- readonly accept: ["video/mp4", "video/webm"];
2811
- readonly maxSize: 20971520;
2812
- readonly description: "Video (up to 20MB)";
2965
+ readonly type: "union";
2966
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallVideo"];
2967
+ readonly description: "Video for this contributor, as a URI (embed/direct link) or uploaded video blob.";
2813
2968
  };
2814
- };
2815
- };
2816
- readonly largeImage: {
2817
- readonly type: "object";
2818
- readonly required: ["image"];
2819
- readonly description: "Object containing a large image";
2820
- readonly properties: {
2821
- readonly image: {
2822
- readonly type: "blob";
2823
- readonly accept: ["image/jpeg", "image/jpg", "image/png", "image/webp"];
2824
- readonly maxSize: 10485760;
2825
- readonly description: "Image (up to 10MB)";
2969
+ readonly hoverImage: {
2970
+ readonly type: "union";
2971
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
2972
+ readonly description: "Image overlay shown when hovering over this contributor, as a URI or image blob.";
2973
+ };
2974
+ readonly hoverIframeUrl: {
2975
+ readonly type: "string";
2976
+ readonly format: "uri";
2977
+ readonly description: "Iframe overlay shown when hovering over this contributor.";
2978
+ readonly maxLength: 2048;
2979
+ };
2980
+ readonly url: {
2981
+ readonly type: "string";
2982
+ readonly format: "uri";
2983
+ readonly description: "Click-through link URL for this contributor.";
2984
+ readonly maxLength: 2048;
2826
2985
  };
2827
2986
  };
2828
2987
  };
2829
2988
  };
2830
2989
  } | {
2831
2990
  readonly lexicon: 1;
2832
- readonly id: "org.hypercerts.funding.receipt";
2991
+ readonly id: "org.hyperboards.displayProfile";
2833
2992
  readonly defs: {
2834
2993
  readonly main: {
2835
2994
  readonly type: "record";
2836
- readonly 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.";
2837
- readonly key: "tid";
2995
+ readonly 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.";
2996
+ readonly key: "literal:self";
2838
2997
  readonly record: {
2839
2998
  readonly type: "object";
2840
- readonly required: ["from", "to", "amount", "currency", "createdAt"];
2999
+ readonly required: ["createdAt"];
2841
3000
  readonly properties: {
2842
- readonly from: {
2843
- readonly type: "ref";
2844
- readonly ref: "lex:app.certified.defs#did";
2845
- readonly description: "DID of the sender who transferred the funds. Leave empty if sender wants to stay anonymous.";
2846
- };
2847
- readonly to: {
2848
- readonly type: "string";
2849
- readonly description: "The recipient of the funds. Can be identified by DID or a clear-text name.";
2850
- readonly maxLength: 2048;
2851
- };
2852
- readonly amount: {
2853
- readonly type: "string";
2854
- readonly description: "Amount of funding received as a numeric string (e.g. '1000.50').";
2855
- readonly maxLength: 50;
2856
- };
2857
- readonly currency: {
2858
- readonly type: "string";
2859
- readonly description: "Currency of the payment (e.g. EUR, USD, ETH).";
2860
- readonly maxLength: 10;
2861
- };
2862
- readonly paymentRail: {
3001
+ readonly displayName: {
2863
3002
  readonly type: "string";
2864
- readonly description: "How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).";
2865
- readonly maxLength: 50;
3003
+ readonly description: "Display name override for this user on hyperboards.";
3004
+ readonly maxLength: 640;
3005
+ readonly maxGraphemes: 64;
2866
3006
  };
2867
- readonly paymentNetwork: {
2868
- readonly type: "string";
2869
- readonly description: "Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).";
2870
- readonly maxLength: 50;
3007
+ readonly image: {
3008
+ readonly type: "union";
3009
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
3010
+ readonly description: "Avatar or face image override for this user on hyperboards, as a URI or image blob.";
2871
3011
  };
2872
- readonly transactionId: {
2873
- readonly type: "string";
2874
- readonly 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.";
2875
- readonly maxLength: 256;
3012
+ readonly video: {
3013
+ readonly type: "union";
3014
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallVideo"];
3015
+ readonly description: "Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob.";
2876
3016
  };
2877
- readonly for: {
2878
- readonly type: "string";
2879
- readonly format: "at-uri";
2880
- readonly description: "Optional reference to the activity, project, or organization this funding relates to.";
3017
+ readonly hoverImage: {
3018
+ readonly type: "union";
3019
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
3020
+ readonly description: "Default hover image for this user across boards, as a URI or image blob.";
2881
3021
  };
2882
- readonly notes: {
3022
+ readonly hoverIframeUrl: {
2883
3023
  readonly type: "string";
2884
- readonly description: "Optional notes or additional context for this funding receipt.";
2885
- readonly maxLength: 500;
3024
+ readonly format: "uri";
3025
+ readonly description: "Default hover iframe URL for this user across boards.";
3026
+ readonly maxLength: 2048;
2886
3027
  };
2887
- readonly occurredAt: {
3028
+ readonly url: {
2888
3029
  readonly type: "string";
2889
- readonly format: "datetime";
2890
- readonly description: "Timestamp when the payment occurred.";
3030
+ readonly format: "uri";
3031
+ readonly description: "Default click-through link URL for this user across boards.";
3032
+ readonly maxLength: 2048;
2891
3033
  };
2892
3034
  readonly createdAt: {
2893
3035
  readonly type: "string";
2894
3036
  readonly format: "datetime";
2895
- readonly description: "Client-declared timestamp when this receipt record was created.";
2896
- };
2897
- };
2898
- };
2899
- };
2900
- };
2901
- } | {
2902
- readonly lexicon: 1;
2903
- readonly id: "org.hypercerts.workscope.cel";
2904
- readonly defs: {
2905
- readonly main: {
2906
- readonly type: "object";
2907
- readonly 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.";
2908
- readonly required: ["expression", "usedTags", "version", "createdAt"];
2909
- readonly properties: {
2910
- readonly expression: {
2911
- readonly type: "string";
2912
- readonly maxLength: 10000;
2913
- readonly maxGraphemes: 5000;
2914
- readonly description: "A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE'";
2915
- };
2916
- readonly usedTags: {
2917
- readonly type: "array";
2918
- readonly items: {
2919
- readonly type: "ref";
2920
- readonly ref: "lex:com.atproto.repo.strongRef";
3037
+ readonly description: "Client-declared timestamp when this record was originally created.";
2921
3038
  };
2922
- readonly maxLength: 100;
2923
- readonly 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.";
2924
- };
2925
- readonly version: {
2926
- readonly type: "string";
2927
- readonly maxLength: 16;
2928
- readonly knownValues: ["v1"];
2929
- readonly description: "CEL context schema version.";
2930
- };
2931
- readonly createdAt: {
2932
- readonly type: "string";
2933
- readonly format: "datetime";
2934
- readonly description: "Client-declared timestamp when this expression was originally created.";
2935
3039
  };
2936
3040
  };
2937
3041
  };
2938
3042
  };
2939
3043
  } | {
2940
3044
  readonly lexicon: 1;
2941
- readonly id: "org.hypercerts.workscope.tag";
3045
+ readonly id: "org.hypercerts.claim.activity";
2942
3046
  readonly defs: {
2943
3047
  readonly main: {
2944
3048
  readonly type: "record";
2945
- readonly 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.";
2946
- readonly key: "tid";
3049
+ readonly description: "A hypercert record tracking impact work.";
3050
+ readonly key: "any";
2947
3051
  readonly record: {
2948
3052
  readonly type: "object";
2949
- readonly required: ["key", "name", "createdAt"];
3053
+ readonly required: ["title", "shortDescription", "createdAt"];
2950
3054
  readonly properties: {
2951
- readonly key: {
3055
+ readonly title: {
2952
3056
  readonly type: "string";
2953
- readonly description: "Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions.";
2954
- readonly maxLength: 120;
3057
+ readonly description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')";
3058
+ readonly maxLength: 256;
2955
3059
  };
2956
- readonly name: {
3060
+ readonly shortDescription: {
2957
3061
  readonly type: "string";
2958
- readonly description: "Human-readable name for this scope.";
2959
- readonly maxLength: 200;
3062
+ readonly description: "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
3063
+ readonly maxLength: 3000;
3064
+ readonly maxGraphemes: 300;
2960
3065
  };
2961
- readonly category: {
2962
- readonly type: "string";
2963
- readonly description: "Category type of this scope.";
2964
- readonly knownValues: ["topic", "language", "domain", "method"];
2965
- readonly maxLength: 50;
3066
+ readonly shortDescriptionFacets: {
3067
+ readonly type: "array";
3068
+ readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
3069
+ readonly items: {
3070
+ readonly type: "ref";
3071
+ readonly ref: "lex:app.bsky.richtext.facet";
3072
+ };
2966
3073
  };
2967
3074
  readonly description: {
2968
- readonly type: "string";
2969
- readonly description: "Optional longer description of this scope.";
2970
- readonly maxLength: 10000;
2971
- readonly maxGraphemes: 1000;
2972
- };
2973
- readonly parent: {
2974
- readonly type: "ref";
2975
- readonly ref: "lex:com.atproto.repo.strongRef";
2976
- readonly 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.";
2977
- };
2978
- readonly status: {
2979
- readonly type: "string";
2980
- readonly description: "Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy.";
2981
- readonly knownValues: ["proposed", "accepted", "deprecated"];
2982
- readonly maxLength: 20;
3075
+ readonly type: "union";
3076
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
3077
+ readonly description: "Long-form description of the activity. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
2983
3078
  };
2984
- readonly supersededBy: {
2985
- readonly type: "ref";
2986
- readonly ref: "lex:com.atproto.repo.strongRef";
2987
- readonly 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.";
3079
+ readonly image: {
3080
+ readonly type: "union";
3081
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
3082
+ readonly description: "The hypercert visual representation as a URI or image blob.";
2988
3083
  };
2989
- readonly aliases: {
3084
+ readonly contributors: {
2990
3085
  readonly type: "array";
3086
+ readonly description: "An array of contributor objects, each containing contributor information, weight, and contribution details.";
2991
3087
  readonly items: {
2992
- readonly type: "string";
2993
- readonly maxLength: 200;
3088
+ readonly type: "ref";
3089
+ readonly ref: "lex:org.hypercerts.claim.activity#contributor";
2994
3090
  };
2995
- readonly maxLength: 50;
2996
- readonly 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.";
2997
3091
  };
2998
- readonly sameAs: {
3092
+ readonly workScope: {
3093
+ readonly type: "union";
3094
+ readonly refs: ["lex:org.hypercerts.workscope.cel", "lex:org.hypercerts.claim.activity#workScopeString"];
3095
+ readonly description: "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.";
3096
+ };
3097
+ readonly startDate: {
3098
+ readonly type: "string";
3099
+ readonly format: "datetime";
3100
+ readonly description: "When the work began";
3101
+ };
3102
+ readonly endDate: {
3103
+ readonly type: "string";
3104
+ readonly format: "datetime";
3105
+ readonly description: "When the work ended";
3106
+ };
3107
+ readonly locations: {
2999
3108
  readonly type: "array";
3109
+ readonly description: "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.";
3110
+ readonly maxLength: 1000;
3000
3111
  readonly items: {
3001
- readonly type: "string";
3002
- readonly format: "uri";
3003
- readonly maxLength: 2048;
3112
+ readonly type: "ref";
3113
+ readonly ref: "lex:com.atproto.repo.strongRef";
3004
3114
  };
3005
- readonly maxLength: 20;
3006
- readonly 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.";
3007
3115
  };
3008
- readonly referenceDocument: {
3116
+ readonly rights: {
3117
+ readonly type: "ref";
3118
+ readonly ref: "lex:com.atproto.repo.strongRef";
3119
+ readonly description: "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.";
3120
+ };
3121
+ readonly createdAt: {
3122
+ readonly type: "string";
3123
+ readonly format: "datetime";
3124
+ readonly description: "Client-declared timestamp when this record was originally created";
3125
+ };
3126
+ };
3127
+ };
3128
+ };
3129
+ readonly contributor: {
3130
+ readonly type: "object";
3131
+ readonly description: "A contributor to the activity, with identity, weight, and contribution details.";
3132
+ readonly required: ["contributorIdentity"];
3133
+ readonly properties: {
3134
+ readonly contributorIdentity: {
3135
+ readonly type: "union";
3136
+ readonly refs: ["lex:org.hypercerts.claim.activity#contributorIdentity", "lex:com.atproto.repo.strongRef"];
3137
+ readonly 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.";
3138
+ };
3139
+ readonly contributionWeight: {
3140
+ readonly type: "string";
3141
+ readonly 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.";
3142
+ readonly maxLength: 100;
3143
+ };
3144
+ readonly contributionDetails: {
3145
+ readonly type: "union";
3146
+ readonly refs: ["lex:org.hypercerts.claim.activity#contributorRole", "lex:com.atproto.repo.strongRef"];
3147
+ readonly 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.";
3148
+ };
3149
+ };
3150
+ };
3151
+ readonly contributorIdentity: {
3152
+ readonly type: "object";
3153
+ readonly description: "Contributor information as a string (DID or identifier).";
3154
+ readonly required: ["identity"];
3155
+ readonly properties: {
3156
+ readonly identity: {
3157
+ readonly type: "string";
3158
+ readonly description: "The contributor identity string (DID or identifier).";
3159
+ readonly maxLength: 1000;
3160
+ readonly maxGraphemes: 100;
3161
+ };
3162
+ };
3163
+ };
3164
+ readonly contributorRole: {
3165
+ readonly type: "object";
3166
+ readonly description: "Contribution details as a string.";
3167
+ readonly required: ["role"];
3168
+ readonly properties: {
3169
+ readonly role: {
3170
+ readonly type: "string";
3171
+ readonly description: "The contribution role or details.";
3172
+ readonly maxLength: 1000;
3173
+ readonly maxGraphemes: 100;
3174
+ };
3175
+ };
3176
+ };
3177
+ readonly workScopeString: {
3178
+ readonly type: "object";
3179
+ readonly description: "A free-form string describing the work scope for simple or legacy scopes.";
3180
+ readonly required: ["scope"];
3181
+ readonly properties: {
3182
+ readonly scope: {
3183
+ readonly type: "string";
3184
+ readonly description: "The work scope description string.";
3185
+ readonly maxLength: 1000;
3186
+ readonly maxGraphemes: 100;
3187
+ };
3188
+ };
3189
+ };
3190
+ };
3191
+ } | {
3192
+ readonly lexicon: 1;
3193
+ readonly id: "org.hypercerts.claim.contribution";
3194
+ readonly defs: {
3195
+ readonly main: {
3196
+ readonly type: "record";
3197
+ readonly description: "Details about a specific contribution including role, description, and timeframe.";
3198
+ readonly key: "tid";
3199
+ readonly record: {
3200
+ readonly type: "object";
3201
+ readonly required: ["createdAt"];
3202
+ readonly properties: {
3203
+ readonly role: {
3204
+ readonly type: "string";
3205
+ readonly description: "Role or title of the contributor.";
3206
+ readonly maxLength: 100;
3207
+ };
3208
+ readonly contributionDescription: {
3209
+ readonly type: "string";
3210
+ readonly description: "Description of what the contribution concretely involved.";
3211
+ readonly maxLength: 10000;
3212
+ readonly maxGraphemes: 1000;
3213
+ };
3214
+ readonly startDate: {
3215
+ readonly type: "string";
3216
+ readonly format: "datetime";
3217
+ readonly description: "When this contribution started. Should fall within the parent hypercert's timeframe.";
3218
+ };
3219
+ readonly endDate: {
3220
+ readonly type: "string";
3221
+ readonly format: "datetime";
3222
+ readonly description: "When this contribution finished. Should fall within the parent hypercert's timeframe.";
3223
+ };
3224
+ readonly createdAt: {
3225
+ readonly type: "string";
3226
+ readonly format: "datetime";
3227
+ readonly description: "Client-declared timestamp when this record was originally created.";
3228
+ };
3229
+ };
3230
+ };
3231
+ };
3232
+ };
3233
+ } | {
3234
+ readonly lexicon: 1;
3235
+ readonly id: "org.hypercerts.claim.contributorInformation";
3236
+ readonly defs: {
3237
+ readonly main: {
3238
+ readonly type: "record";
3239
+ readonly description: "Contributor information including identifier, display name, and image.";
3240
+ readonly key: "tid";
3241
+ readonly record: {
3242
+ readonly type: "object";
3243
+ readonly required: ["createdAt"];
3244
+ readonly properties: {
3245
+ readonly identifier: {
3246
+ readonly type: "string";
3247
+ readonly description: "DID (did:plc:...) or URI to a social profile of the contributor.";
3248
+ readonly maxLength: 2048;
3249
+ };
3250
+ readonly displayName: {
3251
+ readonly type: "string";
3252
+ readonly description: "Human-readable name for the contributor as it should appear in UI.";
3253
+ readonly maxLength: 100;
3254
+ };
3255
+ readonly image: {
3009
3256
  readonly type: "union";
3010
- readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
3011
- readonly description: "Link to a governance or reference document where this work scope tag is defined and further explained.";
3257
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
3258
+ readonly description: "The contributor visual representation as a URI or image blob.";
3012
3259
  };
3013
3260
  readonly createdAt: {
3014
3261
  readonly type: "string";
@@ -3019,6 +3266,1330 @@ export declare const schemas: ({
3019
3266
  };
3020
3267
  };
3021
3268
  };
3269
+ } | {
3270
+ readonly lexicon: 1;
3271
+ readonly id: "org.hypercerts.claim.rights";
3272
+ readonly defs: {
3273
+ readonly main: {
3274
+ readonly type: "record";
3275
+ readonly 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.";
3276
+ readonly key: "tid";
3277
+ readonly record: {
3278
+ readonly type: "object";
3279
+ readonly required: ["rightsName", "rightsType", "rightsDescription", "createdAt"];
3280
+ readonly properties: {
3281
+ readonly rightsName: {
3282
+ readonly type: "string";
3283
+ readonly description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')";
3284
+ readonly maxLength: 100;
3285
+ };
3286
+ readonly rightsType: {
3287
+ readonly type: "string";
3288
+ readonly description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search";
3289
+ readonly maxLength: 10;
3290
+ };
3291
+ readonly rightsDescription: {
3292
+ readonly type: "string";
3293
+ readonly description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions";
3294
+ readonly maxLength: 10000;
3295
+ readonly maxGraphemes: 1000;
3296
+ };
3297
+ readonly attachment: {
3298
+ readonly type: "union";
3299
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
3300
+ readonly description: "An attachment to define the rights further, e.g. a legal document.";
3301
+ };
3302
+ readonly createdAt: {
3303
+ readonly type: "string";
3304
+ readonly format: "datetime";
3305
+ readonly description: "Client-declared timestamp when this record was originally created";
3306
+ };
3307
+ };
3308
+ };
3309
+ };
3310
+ };
3311
+ } | {
3312
+ readonly lexicon: 1;
3313
+ readonly id: "org.hypercerts.collection";
3314
+ readonly defs: {
3315
+ readonly main: {
3316
+ readonly type: "record";
3317
+ readonly description: "A collection/group of items (activities and/or other collections). Collections support recursive nesting.";
3318
+ readonly key: "tid";
3319
+ readonly record: {
3320
+ readonly type: "object";
3321
+ readonly required: ["title", "createdAt"];
3322
+ readonly properties: {
3323
+ readonly type: {
3324
+ readonly type: "string";
3325
+ readonly description: "The type of this collection. Values beyond the known set are permitted.";
3326
+ readonly knownValues: ["favorites", "project", "portfolio", "program"];
3327
+ readonly maxLength: 64;
3328
+ };
3329
+ readonly title: {
3330
+ readonly type: "string";
3331
+ readonly description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')";
3332
+ readonly maxLength: 800;
3333
+ readonly maxGraphemes: 80;
3334
+ };
3335
+ readonly shortDescription: {
3336
+ readonly type: "string";
3337
+ readonly maxLength: 3000;
3338
+ readonly maxGraphemes: 300;
3339
+ readonly description: "Short summary of this collection, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
3340
+ };
3341
+ readonly shortDescriptionFacets: {
3342
+ readonly type: "array";
3343
+ readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
3344
+ readonly items: {
3345
+ readonly type: "ref";
3346
+ readonly ref: "lex:app.bsky.richtext.facet";
3347
+ };
3348
+ };
3349
+ readonly description: {
3350
+ readonly type: "union";
3351
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
3352
+ readonly description: "Long-form description of the collection. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
3353
+ };
3354
+ readonly avatar: {
3355
+ readonly type: "union";
3356
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallImage"];
3357
+ readonly description: "The collection's avatar/profile image as a URI or image blob.";
3358
+ };
3359
+ readonly banner: {
3360
+ readonly type: "union";
3361
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#largeImage"];
3362
+ readonly description: "Larger horizontal image to display behind the collection view.";
3363
+ };
3364
+ readonly items: {
3365
+ readonly type: "array";
3366
+ readonly description: "Array of items in this collection with optional weights.";
3367
+ readonly maxLength: 1000;
3368
+ readonly items: {
3369
+ readonly type: "ref";
3370
+ readonly ref: "lex:org.hypercerts.collection#item";
3371
+ };
3372
+ };
3373
+ readonly location: {
3374
+ readonly type: "ref";
3375
+ readonly ref: "lex:com.atproto.repo.strongRef";
3376
+ readonly description: "A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location.";
3377
+ };
3378
+ readonly createdAt: {
3379
+ readonly type: "string";
3380
+ readonly format: "datetime";
3381
+ readonly description: "Client-declared timestamp when this record was originally created";
3382
+ };
3383
+ };
3384
+ };
3385
+ };
3386
+ readonly item: {
3387
+ readonly type: "object";
3388
+ readonly description: "An item in a collection, with an identifier and optional weight.";
3389
+ readonly required: ["itemIdentifier"];
3390
+ readonly properties: {
3391
+ readonly itemIdentifier: {
3392
+ readonly type: "ref";
3393
+ readonly ref: "lex:com.atproto.repo.strongRef";
3394
+ readonly description: "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection).";
3395
+ };
3396
+ readonly itemWeight: {
3397
+ readonly type: "string";
3398
+ readonly 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.";
3399
+ readonly maxLength: 100;
3400
+ };
3401
+ };
3402
+ };
3403
+ };
3404
+ } | {
3405
+ readonly lexicon: 1;
3406
+ readonly id: "org.hypercerts.context.acknowledgement";
3407
+ readonly defs: {
3408
+ readonly main: {
3409
+ readonly type: "record";
3410
+ readonly 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.";
3411
+ readonly key: "tid";
3412
+ readonly record: {
3413
+ readonly type: "object";
3414
+ readonly required: ["subject", "acknowledged", "createdAt"];
3415
+ readonly properties: {
3416
+ readonly subject: {
3417
+ readonly type: "ref";
3418
+ readonly ref: "lex:com.atproto.repo.strongRef";
3419
+ readonly description: "The record being acknowledged (e.g. an activity, a contributor information record, an evaluation).";
3420
+ };
3421
+ readonly context: {
3422
+ readonly type: "union";
3423
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:com.atproto.repo.strongRef"];
3424
+ readonly 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.";
3425
+ };
3426
+ readonly acknowledged: {
3427
+ readonly type: "boolean";
3428
+ readonly description: "Whether the relationship is acknowledged (true) or rejected (false).";
3429
+ };
3430
+ readonly comment: {
3431
+ readonly type: "string";
3432
+ readonly description: "Optional plain-text comment providing additional context or reasoning.";
3433
+ readonly maxLength: 10000;
3434
+ readonly maxGraphemes: 1000;
3435
+ };
3436
+ readonly createdAt: {
3437
+ readonly type: "string";
3438
+ readonly format: "datetime";
3439
+ readonly description: "Client-declared timestamp when this record was originally created.";
3440
+ };
3441
+ };
3442
+ };
3443
+ };
3444
+ };
3445
+ } | {
3446
+ readonly lexicon: 1;
3447
+ readonly id: "org.hypercerts.context.attachment";
3448
+ readonly defs: {
3449
+ readonly main: {
3450
+ readonly type: "record";
3451
+ readonly description: "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).";
3452
+ readonly key: "tid";
3453
+ readonly record: {
3454
+ readonly type: "object";
3455
+ readonly required: ["title", "createdAt"];
3456
+ readonly properties: {
3457
+ readonly subjects: {
3458
+ readonly type: "array";
3459
+ readonly 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.";
3460
+ readonly items: {
3461
+ readonly type: "ref";
3462
+ readonly ref: "lex:com.atproto.repo.strongRef";
3463
+ };
3464
+ readonly maxLength: 100;
3465
+ };
3466
+ readonly contentType: {
3467
+ readonly type: "string";
3468
+ readonly description: "The type of attachment. Values beyond the known set are permitted.";
3469
+ readonly knownValues: ["report", "audit", "evidence", "testimonial", "methodology"];
3470
+ readonly maxLength: 64;
3471
+ };
3472
+ readonly content: {
3473
+ readonly type: "array";
3474
+ readonly description: "The files, documents, or external references included in this attachment record.";
3475
+ readonly items: {
3476
+ readonly type: "union";
3477
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
3478
+ };
3479
+ readonly maxLength: 100;
3480
+ };
3481
+ readonly title: {
3482
+ readonly type: "string";
3483
+ readonly maxLength: 256;
3484
+ readonly description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')";
3485
+ };
3486
+ readonly shortDescription: {
3487
+ readonly type: "string";
3488
+ readonly description: "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.";
3489
+ readonly maxLength: 3000;
3490
+ readonly maxGraphemes: 300;
3491
+ };
3492
+ readonly shortDescriptionFacets: {
3493
+ readonly type: "array";
3494
+ readonly description: "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).";
3495
+ readonly items: {
3496
+ readonly type: "ref";
3497
+ readonly ref: "lex:app.bsky.richtext.facet";
3498
+ };
3499
+ };
3500
+ readonly description: {
3501
+ readonly type: "union";
3502
+ readonly refs: ["lex:org.hypercerts.defs#descriptionString", "lex:pub.leaflet.pages.linearDocument", "lex:com.atproto.repo.strongRef"];
3503
+ readonly description: "Long-form description of the attachment. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.";
3504
+ };
3505
+ readonly location: {
3506
+ readonly type: "ref";
3507
+ readonly ref: "lex:com.atproto.repo.strongRef";
3508
+ readonly 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.";
3509
+ };
3510
+ readonly createdAt: {
3511
+ readonly type: "string";
3512
+ readonly format: "datetime";
3513
+ readonly description: "Client-declared timestamp when this record was originally created.";
3514
+ };
3515
+ };
3516
+ };
3517
+ };
3518
+ };
3519
+ } | {
3520
+ readonly lexicon: 1;
3521
+ readonly id: "org.hypercerts.context.evaluation";
3522
+ readonly defs: {
3523
+ readonly main: {
3524
+ readonly type: "record";
3525
+ readonly description: "An evaluation of a hypercert record (e.g. an activity and its impact).";
3526
+ readonly key: "tid";
3527
+ readonly record: {
3528
+ readonly type: "object";
3529
+ readonly required: ["evaluators", "summary", "createdAt"];
3530
+ readonly properties: {
3531
+ readonly subject: {
3532
+ readonly type: "ref";
3533
+ readonly ref: "lex:com.atproto.repo.strongRef";
3534
+ readonly description: "A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)";
3535
+ };
3536
+ readonly evaluators: {
3537
+ readonly type: "array";
3538
+ readonly description: "DIDs of the evaluators";
3539
+ readonly items: {
3540
+ readonly type: "ref";
3541
+ readonly ref: "lex:app.certified.defs#did";
3542
+ };
3543
+ readonly maxLength: 1000;
3544
+ };
3545
+ readonly content: {
3546
+ readonly type: "array";
3547
+ readonly description: "Evaluation data (URIs or blobs) containing detailed reports or methodology";
3548
+ readonly items: {
3549
+ readonly type: "union";
3550
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
3551
+ };
3552
+ readonly maxLength: 100;
3553
+ };
3554
+ readonly measurements: {
3555
+ readonly type: "array";
3556
+ readonly description: "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement";
3557
+ readonly items: {
3558
+ readonly type: "ref";
3559
+ readonly ref: "lex:com.atproto.repo.strongRef";
3560
+ };
3561
+ readonly maxLength: 100;
3562
+ };
3563
+ readonly summary: {
3564
+ readonly type: "string";
3565
+ readonly description: "Brief evaluation summary";
3566
+ readonly maxLength: 5000;
3567
+ readonly maxGraphemes: 1000;
3568
+ };
3569
+ readonly score: {
3570
+ readonly type: "ref";
3571
+ readonly ref: "lex:org.hypercerts.context.evaluation#score";
3572
+ readonly description: "Optional overall score for this evaluation on a numeric scale.";
3573
+ };
3574
+ readonly location: {
3575
+ readonly type: "ref";
3576
+ readonly ref: "lex:com.atproto.repo.strongRef";
3577
+ readonly description: "An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location.";
3578
+ };
3579
+ readonly createdAt: {
3580
+ readonly type: "string";
3581
+ readonly format: "datetime";
3582
+ readonly description: "Client-declared timestamp when this record was originally created";
3583
+ };
3584
+ };
3585
+ };
3586
+ };
3587
+ readonly score: {
3588
+ readonly type: "object";
3589
+ readonly description: "Overall score for an evaluation on a numeric scale.";
3590
+ readonly required: ["min", "max", "value"];
3591
+ readonly properties: {
3592
+ readonly min: {
3593
+ readonly type: "string";
3594
+ readonly description: "Minimum value of the scale as a numeric string (e.g. '0', '1').";
3595
+ readonly maxLength: 50;
3596
+ };
3597
+ readonly max: {
3598
+ readonly type: "string";
3599
+ readonly description: "Maximum value of the scale as a numeric string (e.g. '5', '10').";
3600
+ readonly maxLength: 50;
3601
+ };
3602
+ readonly value: {
3603
+ readonly type: "string";
3604
+ readonly description: "Score within the inclusive range [min, max] as a numeric string (e.g. '3.7').";
3605
+ readonly maxLength: 50;
3606
+ };
3607
+ };
3608
+ };
3609
+ };
3610
+ } | {
3611
+ readonly lexicon: 1;
3612
+ readonly id: "org.hypercerts.context.measurement";
3613
+ readonly defs: {
3614
+ readonly main: {
3615
+ readonly type: "record";
3616
+ readonly description: "Measurement data related to one or more records (e.g. activities, projects, etc.).";
3617
+ readonly key: "tid";
3618
+ readonly record: {
3619
+ readonly type: "object";
3620
+ readonly required: ["metric", "unit", "value", "createdAt"];
3621
+ readonly properties: {
3622
+ readonly subjects: {
3623
+ readonly type: "array";
3624
+ readonly description: "Strong references to the records this measurement refers to (e.g. activities, projects, or claims).";
3625
+ readonly items: {
3626
+ readonly type: "ref";
3627
+ readonly ref: "lex:com.atproto.repo.strongRef";
3628
+ };
3629
+ readonly maxLength: 100;
3630
+ };
3631
+ readonly metric: {
3632
+ readonly type: "string";
3633
+ readonly description: "The metric being measured, e.g. forest area restored, number of users, etc.";
3634
+ readonly maxLength: 500;
3635
+ };
3636
+ readonly unit: {
3637
+ readonly type: "string";
3638
+ readonly description: "The unit of the measured value (e.g. kg CO₂e, hectares, %, index score).";
3639
+ readonly maxLength: 50;
3640
+ };
3641
+ readonly value: {
3642
+ readonly type: "string";
3643
+ readonly description: "The measured value as a numeric string (e.g. '1234.56')";
3644
+ readonly maxLength: 500;
3645
+ };
3646
+ readonly startDate: {
3647
+ readonly type: "string";
3648
+ readonly format: "datetime";
3649
+ readonly description: "The start date and time when the measurement began.";
3650
+ };
3651
+ readonly endDate: {
3652
+ readonly type: "string";
3653
+ readonly format: "datetime";
3654
+ readonly description: "The end date and time when the measurement ended. For one-time measurements, this should equal the start date.";
3655
+ };
3656
+ readonly locations: {
3657
+ readonly type: "array";
3658
+ readonly description: "Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon.";
3659
+ readonly items: {
3660
+ readonly type: "ref";
3661
+ readonly ref: "lex:com.atproto.repo.strongRef";
3662
+ };
3663
+ readonly maxLength: 100;
3664
+ };
3665
+ readonly methodType: {
3666
+ readonly type: "string";
3667
+ readonly description: "Short identifier for the measurement methodology";
3668
+ readonly maxLength: 30;
3669
+ };
3670
+ readonly methodURI: {
3671
+ readonly type: "string";
3672
+ readonly format: "uri";
3673
+ readonly description: "URI to methodology documentation, standard protocol, or measurement procedure";
3674
+ };
3675
+ readonly evidenceURI: {
3676
+ readonly type: "array";
3677
+ readonly description: "URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets)";
3678
+ readonly items: {
3679
+ readonly type: "string";
3680
+ readonly format: "uri";
3681
+ };
3682
+ readonly maxLength: 50;
3683
+ };
3684
+ readonly measurers: {
3685
+ readonly type: "array";
3686
+ readonly description: "DIDs of the entities that performed this measurement";
3687
+ readonly items: {
3688
+ readonly type: "ref";
3689
+ readonly ref: "lex:app.certified.defs#did";
3690
+ };
3691
+ readonly maxLength: 100;
3692
+ };
3693
+ readonly comment: {
3694
+ readonly type: "string";
3695
+ readonly description: "Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`.";
3696
+ readonly maxLength: 3000;
3697
+ readonly maxGraphemes: 300;
3698
+ };
3699
+ readonly commentFacets: {
3700
+ readonly type: "array";
3701
+ readonly description: "Rich text annotations for `comment` (mentions, URLs, hashtags, etc).";
3702
+ readonly items: {
3703
+ readonly type: "ref";
3704
+ readonly ref: "lex:app.bsky.richtext.facet";
3705
+ };
3706
+ };
3707
+ readonly createdAt: {
3708
+ readonly type: "string";
3709
+ readonly format: "datetime";
3710
+ readonly description: "Client-declared timestamp when this record was originally created";
3711
+ };
3712
+ };
3713
+ };
3714
+ };
3715
+ };
3716
+ } | {
3717
+ readonly lexicon: 1;
3718
+ readonly id: "org.hypercerts.defs";
3719
+ readonly description: "Common type definitions used across all Hypercerts protocols.";
3720
+ readonly defs: {
3721
+ readonly descriptionString: {
3722
+ readonly type: "object";
3723
+ readonly description: "An inline long-form description as plain text or markdown, with optional rich-text annotations.";
3724
+ readonly required: ["value"];
3725
+ readonly properties: {
3726
+ readonly value: {
3727
+ readonly type: "string";
3728
+ readonly description: "The description text (plain text or markdown).";
3729
+ readonly maxLength: 250000;
3730
+ readonly maxGraphemes: 25000;
3731
+ };
3732
+ readonly facets: {
3733
+ readonly type: "array";
3734
+ readonly description: "Rich text annotations for the description (mentions, URLs, hashtags, etc).";
3735
+ readonly items: {
3736
+ readonly type: "ref";
3737
+ readonly ref: "lex:app.bsky.richtext.facet";
3738
+ };
3739
+ };
3740
+ };
3741
+ };
3742
+ readonly uri: {
3743
+ readonly type: "object";
3744
+ readonly required: ["uri"];
3745
+ readonly description: "Object containing a URI to external data";
3746
+ readonly properties: {
3747
+ readonly uri: {
3748
+ readonly type: "string";
3749
+ readonly format: "uri";
3750
+ readonly description: "URI to external data";
3751
+ };
3752
+ };
3753
+ };
3754
+ readonly smallBlob: {
3755
+ readonly type: "object";
3756
+ readonly required: ["blob"];
3757
+ readonly description: "Object containing a blob to external data";
3758
+ readonly properties: {
3759
+ readonly blob: {
3760
+ readonly type: "blob";
3761
+ readonly accept: ["*/*"];
3762
+ readonly maxSize: 10485760;
3763
+ readonly description: "Blob to external data (up to 10MB)";
3764
+ };
3765
+ };
3766
+ };
3767
+ readonly largeBlob: {
3768
+ readonly type: "object";
3769
+ readonly required: ["blob"];
3770
+ readonly description: "Object containing a blob to external data";
3771
+ readonly properties: {
3772
+ readonly blob: {
3773
+ readonly type: "blob";
3774
+ readonly accept: ["*/*"];
3775
+ readonly maxSize: 104857600;
3776
+ readonly description: "Blob to external data (up to 100MB)";
3777
+ };
3778
+ };
3779
+ };
3780
+ readonly smallImage: {
3781
+ readonly type: "object";
3782
+ readonly required: ["image"];
3783
+ readonly description: "Object containing a small image";
3784
+ readonly properties: {
3785
+ readonly image: {
3786
+ readonly type: "blob";
3787
+ readonly accept: ["image/jpeg", "image/jpg", "image/png", "image/webp"];
3788
+ readonly maxSize: 5242880;
3789
+ readonly description: "Image (up to 5MB)";
3790
+ };
3791
+ };
3792
+ };
3793
+ readonly smallVideo: {
3794
+ readonly type: "object";
3795
+ readonly required: ["video"];
3796
+ readonly description: "Object containing a small video";
3797
+ readonly properties: {
3798
+ readonly video: {
3799
+ readonly type: "blob";
3800
+ readonly accept: ["video/mp4", "video/webm"];
3801
+ readonly maxSize: 20971520;
3802
+ readonly description: "Video (up to 20MB)";
3803
+ };
3804
+ };
3805
+ };
3806
+ readonly largeImage: {
3807
+ readonly type: "object";
3808
+ readonly required: ["image"];
3809
+ readonly description: "Object containing a large image";
3810
+ readonly properties: {
3811
+ readonly image: {
3812
+ readonly type: "blob";
3813
+ readonly accept: ["image/jpeg", "image/jpg", "image/png", "image/webp"];
3814
+ readonly maxSize: 10485760;
3815
+ readonly description: "Image (up to 10MB)";
3816
+ };
3817
+ };
3818
+ };
3819
+ };
3820
+ } | {
3821
+ readonly lexicon: 1;
3822
+ readonly id: "org.hypercerts.funding.receipt";
3823
+ readonly defs: {
3824
+ readonly main: {
3825
+ readonly type: "record";
3826
+ readonly 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.";
3827
+ readonly key: "tid";
3828
+ readonly record: {
3829
+ readonly type: "object";
3830
+ readonly required: ["to", "amount", "currency", "createdAt"];
3831
+ readonly properties: {
3832
+ readonly from: {
3833
+ readonly type: "union";
3834
+ readonly description: "The sender of the funds (a free-text string, an account DID, or a strong reference to a record). Optional — omit to represent anonymity.";
3835
+ readonly refs: ["lex:org.hypercerts.funding.receipt#text", "lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
3836
+ };
3837
+ readonly to: {
3838
+ readonly type: "union";
3839
+ readonly description: "The recipient of the funds (a free-text string, an account DID, or a strong reference to a record).";
3840
+ readonly refs: ["lex:org.hypercerts.funding.receipt#text", "lex:app.certified.defs#did", "lex:com.atproto.repo.strongRef"];
3841
+ };
3842
+ readonly amount: {
3843
+ readonly type: "string";
3844
+ readonly description: "Amount of funding received as a numeric string (e.g. '1000.50').";
3845
+ readonly maxLength: 50;
3846
+ };
3847
+ readonly currency: {
3848
+ readonly type: "string";
3849
+ readonly description: "Currency of the payment (e.g. EUR, USD, ETH).";
3850
+ readonly maxLength: 10;
3851
+ };
3852
+ readonly paymentRail: {
3853
+ readonly type: "string";
3854
+ readonly description: "How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).";
3855
+ readonly maxLength: 50;
3856
+ };
3857
+ readonly paymentNetwork: {
3858
+ readonly type: "string";
3859
+ readonly description: "Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).";
3860
+ readonly maxLength: 50;
3861
+ };
3862
+ readonly transactionId: {
3863
+ readonly type: "string";
3864
+ readonly 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.";
3865
+ readonly maxLength: 256;
3866
+ };
3867
+ readonly for: {
3868
+ readonly type: "ref";
3869
+ readonly ref: "lex:com.atproto.repo.strongRef";
3870
+ readonly description: "Optional strong reference to the activity, project, or organization this funding relates to.";
3871
+ };
3872
+ readonly notes: {
3873
+ readonly type: "string";
3874
+ readonly description: "Optional notes or additional context for this funding receipt.";
3875
+ readonly maxLength: 500;
3876
+ };
3877
+ readonly occurredAt: {
3878
+ readonly type: "string";
3879
+ readonly format: "datetime";
3880
+ readonly description: "Timestamp when the payment occurred.";
3881
+ };
3882
+ readonly createdAt: {
3883
+ readonly type: "string";
3884
+ readonly format: "datetime";
3885
+ readonly description: "Client-declared timestamp when this receipt record was created.";
3886
+ };
3887
+ };
3888
+ };
3889
+ };
3890
+ readonly text: {
3891
+ readonly type: "object";
3892
+ readonly description: "A free-text string value (e.g. a display name, wallet address, or other identifier).";
3893
+ readonly required: ["value"];
3894
+ readonly properties: {
3895
+ readonly value: {
3896
+ readonly type: "string";
3897
+ readonly description: "The string value.";
3898
+ readonly maxLength: 2048;
3899
+ };
3900
+ };
3901
+ };
3902
+ };
3903
+ } | {
3904
+ readonly lexicon: 1;
3905
+ readonly id: "org.hypercerts.workscope.cel";
3906
+ readonly defs: {
3907
+ readonly main: {
3908
+ readonly type: "object";
3909
+ readonly 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.";
3910
+ readonly required: ["expression", "usedTags", "version", "createdAt"];
3911
+ readonly properties: {
3912
+ readonly expression: {
3913
+ readonly type: "string";
3914
+ readonly maxLength: 10000;
3915
+ readonly maxGraphemes: 5000;
3916
+ readonly description: "A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE'";
3917
+ };
3918
+ readonly usedTags: {
3919
+ readonly type: "array";
3920
+ readonly items: {
3921
+ readonly type: "ref";
3922
+ readonly ref: "lex:com.atproto.repo.strongRef";
3923
+ };
3924
+ readonly maxLength: 100;
3925
+ readonly 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.";
3926
+ };
3927
+ readonly version: {
3928
+ readonly type: "string";
3929
+ readonly maxLength: 16;
3930
+ readonly knownValues: ["v1"];
3931
+ readonly description: "CEL context schema version.";
3932
+ };
3933
+ readonly createdAt: {
3934
+ readonly type: "string";
3935
+ readonly format: "datetime";
3936
+ readonly description: "Client-declared timestamp when this expression was originally created.";
3937
+ };
3938
+ };
3939
+ };
3940
+ };
3941
+ } | {
3942
+ readonly lexicon: 1;
3943
+ readonly id: "org.hypercerts.workscope.tag";
3944
+ readonly defs: {
3945
+ readonly main: {
3946
+ readonly type: "record";
3947
+ readonly 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.";
3948
+ readonly key: "tid";
3949
+ readonly record: {
3950
+ readonly type: "object";
3951
+ readonly required: ["key", "name", "createdAt"];
3952
+ readonly properties: {
3953
+ readonly key: {
3954
+ readonly type: "string";
3955
+ readonly description: "Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions.";
3956
+ readonly maxLength: 120;
3957
+ };
3958
+ readonly name: {
3959
+ readonly type: "string";
3960
+ readonly description: "Human-readable name for this scope.";
3961
+ readonly maxLength: 200;
3962
+ };
3963
+ readonly category: {
3964
+ readonly type: "string";
3965
+ readonly description: "Category type of this scope.";
3966
+ readonly knownValues: ["topic", "language", "domain", "method"];
3967
+ readonly maxLength: 50;
3968
+ };
3969
+ readonly description: {
3970
+ readonly type: "string";
3971
+ readonly description: "Optional longer description of this scope.";
3972
+ readonly maxLength: 10000;
3973
+ readonly maxGraphemes: 1000;
3974
+ };
3975
+ readonly parent: {
3976
+ readonly type: "ref";
3977
+ readonly ref: "lex:com.atproto.repo.strongRef";
3978
+ readonly 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.";
3979
+ };
3980
+ readonly status: {
3981
+ readonly type: "string";
3982
+ readonly description: "Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy.";
3983
+ readonly knownValues: ["proposed", "accepted", "deprecated"];
3984
+ readonly maxLength: 20;
3985
+ };
3986
+ readonly supersededBy: {
3987
+ readonly type: "ref";
3988
+ readonly ref: "lex:com.atproto.repo.strongRef";
3989
+ readonly 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.";
3990
+ };
3991
+ readonly aliases: {
3992
+ readonly type: "array";
3993
+ readonly items: {
3994
+ readonly type: "string";
3995
+ readonly maxLength: 200;
3996
+ };
3997
+ readonly maxLength: 50;
3998
+ readonly 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.";
3999
+ };
4000
+ readonly sameAs: {
4001
+ readonly type: "array";
4002
+ readonly items: {
4003
+ readonly type: "string";
4004
+ readonly format: "uri";
4005
+ readonly maxLength: 2048;
4006
+ };
4007
+ readonly maxLength: 20;
4008
+ readonly 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.";
4009
+ };
4010
+ readonly referenceDocument: {
4011
+ readonly type: "union";
4012
+ readonly refs: ["lex:org.hypercerts.defs#uri", "lex:org.hypercerts.defs#smallBlob"];
4013
+ readonly description: "Link to a governance or reference document where this work scope tag is defined and further explained.";
4014
+ };
4015
+ readonly createdAt: {
4016
+ readonly type: "string";
4017
+ readonly format: "datetime";
4018
+ readonly description: "Client-declared timestamp when this record was originally created.";
4019
+ };
4020
+ };
4021
+ };
4022
+ };
4023
+ };
4024
+ } | {
4025
+ readonly lexicon: 1;
4026
+ readonly id: "pub.leaflet.blocks.blockquote";
4027
+ readonly defs: {
4028
+ readonly main: {
4029
+ readonly type: "object";
4030
+ readonly required: ["plaintext"];
4031
+ readonly properties: {
4032
+ readonly plaintext: {
4033
+ readonly type: "string";
4034
+ };
4035
+ readonly facets: {
4036
+ readonly type: "array";
4037
+ readonly items: {
4038
+ readonly type: "ref";
4039
+ readonly ref: "lex:pub.leaflet.richtext.facet";
4040
+ };
4041
+ };
4042
+ };
4043
+ };
4044
+ };
4045
+ } | {
4046
+ readonly lexicon: 1;
4047
+ readonly id: "pub.leaflet.blocks.bskyPost";
4048
+ readonly defs: {
4049
+ readonly main: {
4050
+ readonly type: "object";
4051
+ readonly required: ["postRef"];
4052
+ readonly properties: {
4053
+ readonly postRef: {
4054
+ readonly type: "ref";
4055
+ readonly ref: "lex:com.atproto.repo.strongRef";
4056
+ };
4057
+ readonly clientHost: {
4058
+ readonly type: "string";
4059
+ };
4060
+ };
4061
+ };
4062
+ };
4063
+ } | {
4064
+ readonly lexicon: 1;
4065
+ readonly id: "pub.leaflet.blocks.button";
4066
+ readonly defs: {
4067
+ readonly main: {
4068
+ readonly type: "object";
4069
+ readonly required: ["text", "url"];
4070
+ readonly properties: {
4071
+ readonly text: {
4072
+ readonly type: "string";
4073
+ };
4074
+ readonly url: {
4075
+ readonly type: "string";
4076
+ readonly format: "uri";
4077
+ };
4078
+ };
4079
+ };
4080
+ };
4081
+ } | {
4082
+ readonly lexicon: 1;
4083
+ readonly id: "pub.leaflet.blocks.code";
4084
+ readonly defs: {
4085
+ readonly main: {
4086
+ readonly type: "object";
4087
+ readonly required: ["plaintext"];
4088
+ readonly properties: {
4089
+ readonly plaintext: {
4090
+ readonly type: "string";
4091
+ };
4092
+ readonly language: {
4093
+ readonly type: "string";
4094
+ };
4095
+ readonly syntaxHighlightingTheme: {
4096
+ readonly type: "string";
4097
+ };
4098
+ };
4099
+ };
4100
+ };
4101
+ } | {
4102
+ readonly lexicon: 1;
4103
+ readonly id: "pub.leaflet.blocks.header";
4104
+ readonly defs: {
4105
+ readonly main: {
4106
+ readonly type: "object";
4107
+ readonly required: ["plaintext"];
4108
+ readonly properties: {
4109
+ readonly level: {
4110
+ readonly type: "integer";
4111
+ readonly minimum: 1;
4112
+ readonly maximum: 6;
4113
+ };
4114
+ readonly plaintext: {
4115
+ readonly type: "string";
4116
+ };
4117
+ readonly facets: {
4118
+ readonly type: "array";
4119
+ readonly items: {
4120
+ readonly type: "ref";
4121
+ readonly ref: "lex:pub.leaflet.richtext.facet";
4122
+ };
4123
+ };
4124
+ };
4125
+ };
4126
+ };
4127
+ } | {
4128
+ readonly lexicon: 1;
4129
+ readonly id: "pub.leaflet.blocks.horizontalRule";
4130
+ readonly defs: {
4131
+ readonly main: {
4132
+ readonly type: "object";
4133
+ readonly required: [];
4134
+ readonly properties: {};
4135
+ };
4136
+ };
4137
+ } | {
4138
+ readonly lexicon: 1;
4139
+ readonly id: "pub.leaflet.blocks.iframe";
4140
+ readonly defs: {
4141
+ readonly main: {
4142
+ readonly type: "object";
4143
+ readonly required: ["url"];
4144
+ readonly properties: {
4145
+ readonly url: {
4146
+ readonly type: "string";
4147
+ readonly format: "uri";
4148
+ };
4149
+ readonly height: {
4150
+ readonly type: "integer";
4151
+ readonly minimum: 16;
4152
+ readonly maximum: 1600;
4153
+ };
4154
+ };
4155
+ };
4156
+ };
4157
+ } | {
4158
+ readonly lexicon: 1;
4159
+ readonly id: "pub.leaflet.blocks.image";
4160
+ readonly defs: {
4161
+ readonly main: {
4162
+ readonly type: "object";
4163
+ readonly required: ["image", "aspectRatio"];
4164
+ readonly properties: {
4165
+ readonly image: {
4166
+ readonly type: "blob";
4167
+ readonly accept: ["image/*"];
4168
+ readonly maxSize: 1000000;
4169
+ };
4170
+ readonly alt: {
4171
+ readonly type: "string";
4172
+ readonly description: "Alt text description of the image, for accessibility.";
4173
+ };
4174
+ readonly aspectRatio: {
4175
+ readonly type: "ref";
4176
+ readonly ref: "lex:pub.leaflet.blocks.image#aspectRatio";
4177
+ };
4178
+ };
4179
+ };
4180
+ readonly aspectRatio: {
4181
+ readonly type: "object";
4182
+ readonly required: ["width", "height"];
4183
+ readonly properties: {
4184
+ readonly width: {
4185
+ readonly type: "integer";
4186
+ };
4187
+ readonly height: {
4188
+ readonly type: "integer";
4189
+ };
4190
+ };
4191
+ };
4192
+ };
4193
+ } | {
4194
+ readonly lexicon: 1;
4195
+ readonly id: "pub.leaflet.blocks.math";
4196
+ readonly defs: {
4197
+ readonly main: {
4198
+ readonly type: "object";
4199
+ readonly required: ["tex"];
4200
+ readonly properties: {
4201
+ readonly tex: {
4202
+ readonly type: "string";
4203
+ };
4204
+ };
4205
+ };
4206
+ };
4207
+ } | {
4208
+ readonly lexicon: 1;
4209
+ readonly id: "pub.leaflet.blocks.orderedList";
4210
+ readonly defs: {
4211
+ readonly main: {
4212
+ readonly type: "object";
4213
+ readonly required: ["children"];
4214
+ readonly properties: {
4215
+ readonly startIndex: {
4216
+ readonly type: "integer";
4217
+ readonly description: "The starting number for this ordered list. Defaults to 1 if not specified.";
4218
+ };
4219
+ readonly children: {
4220
+ readonly type: "array";
4221
+ readonly items: {
4222
+ readonly type: "ref";
4223
+ readonly ref: "lex:pub.leaflet.blocks.orderedList#listItem";
4224
+ };
4225
+ };
4226
+ };
4227
+ };
4228
+ readonly listItem: {
4229
+ readonly type: "object";
4230
+ readonly required: ["content"];
4231
+ readonly properties: {
4232
+ readonly checked: {
4233
+ readonly type: "boolean";
4234
+ readonly description: "If present, this item is a checklist item. true = checked, false = unchecked. If absent, this is a normal list item.";
4235
+ };
4236
+ readonly content: {
4237
+ readonly type: "union";
4238
+ readonly refs: ["lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image"];
4239
+ };
4240
+ readonly children: {
4241
+ readonly type: "array";
4242
+ readonly description: "Nested ordered list items. Mutually exclusive with unorderedListChildren; if both are present, children takes precedence.";
4243
+ readonly items: {
4244
+ readonly type: "ref";
4245
+ readonly ref: "lex:pub.leaflet.blocks.orderedList#listItem";
4246
+ };
4247
+ };
4248
+ readonly unorderedListChildren: {
4249
+ readonly type: "ref";
4250
+ readonly description: "A nested unordered list. Mutually exclusive with children; if both are present, children takes precedence.";
4251
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList";
4252
+ };
4253
+ };
4254
+ };
4255
+ };
4256
+ } | {
4257
+ readonly lexicon: 1;
4258
+ readonly id: "pub.leaflet.blocks.page";
4259
+ readonly defs: {
4260
+ readonly main: {
4261
+ readonly type: "object";
4262
+ readonly required: ["id"];
4263
+ readonly properties: {
4264
+ readonly id: {
4265
+ readonly type: "string";
4266
+ };
4267
+ };
4268
+ };
4269
+ };
4270
+ } | {
4271
+ readonly lexicon: 1;
4272
+ readonly id: "pub.leaflet.blocks.poll";
4273
+ readonly defs: {
4274
+ readonly main: {
4275
+ readonly type: "object";
4276
+ readonly required: ["pollRef"];
4277
+ readonly properties: {
4278
+ readonly pollRef: {
4279
+ readonly type: "ref";
4280
+ readonly ref: "lex:com.atproto.repo.strongRef";
4281
+ };
4282
+ };
4283
+ };
4284
+ };
4285
+ } | {
4286
+ readonly lexicon: 1;
4287
+ readonly id: "pub.leaflet.blocks.text";
4288
+ readonly defs: {
4289
+ readonly main: {
4290
+ readonly type: "object";
4291
+ readonly required: ["plaintext"];
4292
+ readonly properties: {
4293
+ readonly plaintext: {
4294
+ readonly type: "string";
4295
+ };
4296
+ readonly textSize: {
4297
+ readonly type: "string";
4298
+ readonly enum: ["default", "small", "large"];
4299
+ };
4300
+ readonly facets: {
4301
+ readonly type: "array";
4302
+ readonly items: {
4303
+ readonly type: "ref";
4304
+ readonly ref: "lex:pub.leaflet.richtext.facet";
4305
+ };
4306
+ };
4307
+ };
4308
+ };
4309
+ };
4310
+ } | {
4311
+ readonly lexicon: 1;
4312
+ readonly id: "pub.leaflet.blocks.unorderedList";
4313
+ readonly defs: {
4314
+ readonly main: {
4315
+ readonly type: "object";
4316
+ readonly required: ["children"];
4317
+ readonly properties: {
4318
+ readonly children: {
4319
+ readonly type: "array";
4320
+ readonly items: {
4321
+ readonly type: "ref";
4322
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList#listItem";
4323
+ };
4324
+ };
4325
+ };
4326
+ };
4327
+ readonly listItem: {
4328
+ readonly type: "object";
4329
+ readonly required: ["content"];
4330
+ readonly properties: {
4331
+ readonly checked: {
4332
+ readonly type: "boolean";
4333
+ readonly description: "If present, this item is a checklist item. true = checked, false = unchecked. If absent, this is a normal list item.";
4334
+ };
4335
+ readonly content: {
4336
+ readonly type: "union";
4337
+ readonly refs: ["lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image"];
4338
+ };
4339
+ readonly children: {
4340
+ readonly type: "array";
4341
+ readonly description: "Nested unordered list items. Mutually exclusive with orderedListChildren; if both are present, children takes precedence.";
4342
+ readonly items: {
4343
+ readonly type: "ref";
4344
+ readonly ref: "lex:pub.leaflet.blocks.unorderedList#listItem";
4345
+ };
4346
+ };
4347
+ readonly orderedListChildren: {
4348
+ readonly type: "ref";
4349
+ readonly description: "Nested ordered list items. Mutually exclusive with children; if both are present, children takes precedence.";
4350
+ readonly ref: "lex:pub.leaflet.blocks.orderedList";
4351
+ };
4352
+ };
4353
+ };
4354
+ };
4355
+ } | {
4356
+ readonly lexicon: 1;
4357
+ readonly id: "pub.leaflet.blocks.website";
4358
+ readonly defs: {
4359
+ readonly main: {
4360
+ readonly type: "object";
4361
+ readonly required: ["src"];
4362
+ readonly properties: {
4363
+ readonly previewImage: {
4364
+ readonly type: "blob";
4365
+ readonly accept: ["image/*"];
4366
+ readonly maxSize: 1000000;
4367
+ };
4368
+ readonly title: {
4369
+ readonly type: "string";
4370
+ };
4371
+ readonly description: {
4372
+ readonly type: "string";
4373
+ };
4374
+ readonly src: {
4375
+ readonly type: "string";
4376
+ readonly format: "uri";
4377
+ };
4378
+ };
4379
+ };
4380
+ };
4381
+ } | {
4382
+ readonly lexicon: 1;
4383
+ readonly id: "pub.leaflet.pages.linearDocument";
4384
+ readonly defs: {
4385
+ readonly main: {
4386
+ readonly type: "object";
4387
+ readonly required: ["blocks"];
4388
+ readonly properties: {
4389
+ readonly id: {
4390
+ readonly type: "string";
4391
+ };
4392
+ readonly blocks: {
4393
+ readonly type: "array";
4394
+ readonly items: {
4395
+ readonly type: "ref";
4396
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#block";
4397
+ };
4398
+ };
4399
+ };
4400
+ };
4401
+ readonly block: {
4402
+ readonly type: "object";
4403
+ readonly required: ["block"];
4404
+ readonly properties: {
4405
+ readonly block: {
4406
+ readonly type: "union";
4407
+ readonly refs: ["lex:pub.leaflet.blocks.iframe", "lex:pub.leaflet.blocks.text", "lex:pub.leaflet.blocks.blockquote", "lex:pub.leaflet.blocks.header", "lex:pub.leaflet.blocks.image", "lex:pub.leaflet.blocks.unorderedList", "lex:pub.leaflet.blocks.orderedList", "lex:pub.leaflet.blocks.website", "lex:pub.leaflet.blocks.math", "lex:pub.leaflet.blocks.code", "lex:pub.leaflet.blocks.horizontalRule", "lex:pub.leaflet.blocks.bskyPost", "lex:pub.leaflet.blocks.page", "lex:pub.leaflet.blocks.poll", "lex:pub.leaflet.blocks.button"];
4408
+ };
4409
+ readonly alignment: {
4410
+ readonly type: "string";
4411
+ readonly knownValues: ["lex:pub.leaflet.pages.linearDocument#textAlignLeft", "lex:pub.leaflet.pages.linearDocument#textAlignCenter", "lex:pub.leaflet.pages.linearDocument#textAlignRight", "lex:pub.leaflet.pages.linearDocument#textAlignJustify"];
4412
+ };
4413
+ };
4414
+ };
4415
+ readonly textAlignLeft: {
4416
+ readonly type: "token";
4417
+ };
4418
+ readonly textAlignCenter: {
4419
+ readonly type: "token";
4420
+ };
4421
+ readonly textAlignRight: {
4422
+ readonly type: "token";
4423
+ };
4424
+ readonly textAlignJustify: {
4425
+ readonly type: "token";
4426
+ };
4427
+ readonly quote: {
4428
+ readonly type: "object";
4429
+ readonly required: ["start", "end"];
4430
+ readonly properties: {
4431
+ readonly start: {
4432
+ readonly type: "ref";
4433
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#position";
4434
+ };
4435
+ readonly end: {
4436
+ readonly type: "ref";
4437
+ readonly ref: "lex:pub.leaflet.pages.linearDocument#position";
4438
+ };
4439
+ };
4440
+ };
4441
+ readonly position: {
4442
+ readonly type: "object";
4443
+ readonly required: ["block", "offset"];
4444
+ readonly properties: {
4445
+ readonly block: {
4446
+ readonly type: "array";
4447
+ readonly items: {
4448
+ readonly type: "integer";
4449
+ };
4450
+ };
4451
+ readonly offset: {
4452
+ readonly type: "integer";
4453
+ };
4454
+ };
4455
+ };
4456
+ };
4457
+ } | {
4458
+ readonly lexicon: 1;
4459
+ readonly id: "pub.leaflet.richtext.facet";
4460
+ readonly defs: {
4461
+ readonly main: {
4462
+ readonly type: "object";
4463
+ readonly description: "Annotation of a sub-string within rich text.";
4464
+ readonly required: ["index", "features"];
4465
+ readonly properties: {
4466
+ readonly index: {
4467
+ readonly type: "ref";
4468
+ readonly ref: "lex:pub.leaflet.richtext.facet#byteSlice";
4469
+ };
4470
+ readonly features: {
4471
+ readonly type: "array";
4472
+ readonly items: {
4473
+ readonly type: "union";
4474
+ readonly refs: ["lex:pub.leaflet.richtext.facet#link", "lex:pub.leaflet.richtext.facet#didMention", "lex:pub.leaflet.richtext.facet#atMention", "lex:pub.leaflet.richtext.facet#code", "lex:pub.leaflet.richtext.facet#highlight", "lex:pub.leaflet.richtext.facet#underline", "lex:pub.leaflet.richtext.facet#strikethrough", "lex:pub.leaflet.richtext.facet#id", "lex:pub.leaflet.richtext.facet#bold", "lex:pub.leaflet.richtext.facet#italic", "lex:pub.leaflet.richtext.facet#footnote"];
4475
+ };
4476
+ };
4477
+ };
4478
+ };
4479
+ readonly byteSlice: {
4480
+ readonly type: "object";
4481
+ readonly description: "Specifies the sub-string range a facet feature applies to. Start index is inclusive, end index is exclusive. Indices are zero-indexed, counting bytes of the UTF-8 encoded text. NOTE: some languages, like Javascript, use UTF-16 or Unicode codepoints for string slice indexing; in these languages, convert to byte arrays before working with facets.";
4482
+ readonly required: ["byteStart", "byteEnd"];
4483
+ readonly properties: {
4484
+ readonly byteStart: {
4485
+ readonly type: "integer";
4486
+ readonly minimum: 0;
4487
+ };
4488
+ readonly byteEnd: {
4489
+ readonly type: "integer";
4490
+ readonly minimum: 0;
4491
+ };
4492
+ };
4493
+ };
4494
+ readonly link: {
4495
+ readonly type: "object";
4496
+ readonly description: "Facet feature for a URL. The text URL may have been simplified or truncated, but the facet reference should be a complete URL.";
4497
+ readonly required: ["uri"];
4498
+ readonly properties: {
4499
+ readonly uri: {
4500
+ readonly type: "string";
4501
+ };
4502
+ };
4503
+ };
4504
+ readonly didMention: {
4505
+ readonly type: "object";
4506
+ readonly description: "Facet feature for mentioning a did.";
4507
+ readonly required: ["did"];
4508
+ readonly properties: {
4509
+ readonly did: {
4510
+ readonly type: "string";
4511
+ readonly format: "did";
4512
+ };
4513
+ };
4514
+ };
4515
+ readonly atMention: {
4516
+ readonly type: "object";
4517
+ readonly description: "Facet feature for mentioning an AT URI.";
4518
+ readonly required: ["atURI"];
4519
+ readonly properties: {
4520
+ readonly atURI: {
4521
+ readonly type: "string";
4522
+ readonly format: "uri";
4523
+ };
4524
+ };
4525
+ };
4526
+ readonly code: {
4527
+ readonly type: "object";
4528
+ readonly description: "Facet feature for inline code.";
4529
+ readonly required: [];
4530
+ readonly properties: {};
4531
+ };
4532
+ readonly highlight: {
4533
+ readonly type: "object";
4534
+ readonly description: "Facet feature for highlighted text.";
4535
+ readonly required: [];
4536
+ readonly properties: {};
4537
+ };
4538
+ readonly underline: {
4539
+ readonly type: "object";
4540
+ readonly description: "Facet feature for underline markup";
4541
+ readonly required: [];
4542
+ readonly properties: {};
4543
+ };
4544
+ readonly strikethrough: {
4545
+ readonly type: "object";
4546
+ readonly description: "Facet feature for strikethrough markup";
4547
+ readonly required: [];
4548
+ readonly properties: {};
4549
+ };
4550
+ readonly id: {
4551
+ readonly type: "object";
4552
+ readonly description: "Facet feature for an identifier. Used for linking to a segment";
4553
+ readonly required: [];
4554
+ readonly properties: {
4555
+ readonly id: {
4556
+ readonly type: "string";
4557
+ };
4558
+ };
4559
+ };
4560
+ readonly bold: {
4561
+ readonly type: "object";
4562
+ readonly description: "Facet feature for bold text";
4563
+ readonly required: [];
4564
+ readonly properties: {};
4565
+ };
4566
+ readonly italic: {
4567
+ readonly type: "object";
4568
+ readonly description: "Facet feature for italic text";
4569
+ readonly required: [];
4570
+ readonly properties: {};
4571
+ };
4572
+ readonly footnote: {
4573
+ readonly type: "object";
4574
+ readonly description: "Facet feature for a footnote reference";
4575
+ readonly required: ["footnoteId", "contentPlaintext"];
4576
+ readonly properties: {
4577
+ readonly footnoteId: {
4578
+ readonly type: "string";
4579
+ };
4580
+ readonly contentPlaintext: {
4581
+ readonly type: "string";
4582
+ };
4583
+ readonly contentFacets: {
4584
+ readonly type: "array";
4585
+ readonly items: {
4586
+ readonly type: "ref";
4587
+ readonly ref: "lex:pub.leaflet.richtext.facet#main";
4588
+ };
4589
+ };
4590
+ };
4591
+ };
4592
+ };
3022
4593
  })[];
3023
4594
  export declare const lexicons: Lexicons;
3024
4595
  export declare function validate<T extends {
@@ -3028,12 +4599,14 @@ export declare function validate<T extends {
3028
4599
  $type?: string;
3029
4600
  }>(v: unknown, id: string, hash: string, requiredType?: false): ValidationResult<T>;
3030
4601
  export declare const ids: {
4602
+ readonly AppBskyRichtextFacet: "app.bsky.richtext.facet";
3031
4603
  readonly AppCertifiedActorOrganization: "app.certified.actor.organization";
3032
4604
  readonly AppCertifiedActorProfile: "app.certified.actor.profile";
3033
4605
  readonly AppCertifiedBadgeAward: "app.certified.badge.award";
3034
4606
  readonly AppCertifiedBadgeDefinition: "app.certified.badge.definition";
3035
4607
  readonly AppCertifiedBadgeResponse: "app.certified.badge.response";
3036
4608
  readonly AppCertifiedDefs: "app.certified.defs";
4609
+ readonly AppCertifiedLinkEvm: "app.certified.link.evm";
3037
4610
  readonly AppCertifiedLocation: "app.certified.location";
3038
4611
  readonly ComAtprotoRepoStrongRef: "com.atproto.repo.strongRef";
3039
4612
  readonly OrgHyperboardsBoard: "org.hyperboards.board";
@@ -3051,5 +4624,22 @@ export declare const ids: {
3051
4624
  readonly OrgHypercertsFundingReceipt: "org.hypercerts.funding.receipt";
3052
4625
  readonly OrgHypercertsWorkscopeCel: "org.hypercerts.workscope.cel";
3053
4626
  readonly OrgHypercertsWorkscopeTag: "org.hypercerts.workscope.tag";
4627
+ readonly PubLeafletBlocksBlockquote: "pub.leaflet.blocks.blockquote";
4628
+ readonly PubLeafletBlocksBskyPost: "pub.leaflet.blocks.bskyPost";
4629
+ readonly PubLeafletBlocksButton: "pub.leaflet.blocks.button";
4630
+ readonly PubLeafletBlocksCode: "pub.leaflet.blocks.code";
4631
+ readonly PubLeafletBlocksHeader: "pub.leaflet.blocks.header";
4632
+ readonly PubLeafletBlocksHorizontalRule: "pub.leaflet.blocks.horizontalRule";
4633
+ readonly PubLeafletBlocksIframe: "pub.leaflet.blocks.iframe";
4634
+ readonly PubLeafletBlocksImage: "pub.leaflet.blocks.image";
4635
+ readonly PubLeafletBlocksMath: "pub.leaflet.blocks.math";
4636
+ readonly PubLeafletBlocksOrderedList: "pub.leaflet.blocks.orderedList";
4637
+ readonly PubLeafletBlocksPage: "pub.leaflet.blocks.page";
4638
+ readonly PubLeafletBlocksPoll: "pub.leaflet.blocks.poll";
4639
+ readonly PubLeafletBlocksText: "pub.leaflet.blocks.text";
4640
+ readonly PubLeafletBlocksUnorderedList: "pub.leaflet.blocks.unorderedList";
4641
+ readonly PubLeafletBlocksWebsite: "pub.leaflet.blocks.website";
4642
+ readonly PubLeafletPagesLinearDocument: "pub.leaflet.pages.linearDocument";
4643
+ readonly PubLeafletRichtextFacet: "pub.leaflet.richtext.facet";
3054
4644
  };
3055
4645
  //# sourceMappingURL=lexicons.d.ts.map