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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +714 -0
  2. package/README.md +278 -9
  3. package/SCHEMAS.md +440 -143
  4. package/dist/exports.d.ts +837 -304
  5. package/dist/exports.d.ts.map +1 -1
  6. package/dist/generated/exports.d.ts +837 -304
  7. package/dist/generated/exports.d.ts.map +1 -1
  8. package/dist/generated/lexicons.d.ts +1631 -625
  9. package/dist/generated/lexicons.d.ts.map +1 -1
  10. package/dist/generated/types/app/certified/actor/organization.d.ts +32 -0
  11. package/dist/generated/types/app/certified/actor/organization.d.ts.map +1 -0
  12. package/dist/generated/types/app/certified/actor/profile.d.ts +30 -0
  13. package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -0
  14. package/dist/generated/types/app/certified/badge/award.d.ts +2 -0
  15. package/dist/generated/types/app/certified/badge/award.d.ts.map +1 -1
  16. package/dist/generated/types/app/certified/badge/response.d.ts +1 -1
  17. package/dist/generated/types/app/certified/badge/response.d.ts.map +1 -1
  18. package/dist/generated/types/app/certified/defs.d.ts +11 -1
  19. package/dist/generated/types/app/certified/defs.d.ts.map +1 -1
  20. package/dist/generated/types/app/certified/location.d.ts +13 -5
  21. package/dist/generated/types/app/certified/location.d.ts.map +1 -1
  22. package/dist/generated/types/org/hyperboards/board.d.ts +75 -0
  23. package/dist/generated/types/org/hyperboards/board.d.ts.map +1 -0
  24. package/dist/generated/types/org/hyperboards/displayProfile.d.ts +31 -0
  25. package/dist/generated/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  26. package/dist/generated/types/org/hypercerts/claim/activity.d.ts +30 -11
  27. package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  28. package/dist/generated/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  29. package/dist/generated/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  30. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  31. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  32. package/dist/generated/types/org/hypercerts/claim/rights.d.ts +3 -3
  33. package/dist/generated/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  34. package/dist/generated/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  35. package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -0
  36. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  37. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  38. package/dist/generated/types/org/hypercerts/context/attachment.d.ts +35 -0
  39. package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  40. package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts/context}/evaluation.d.ts +15 -15
  41. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  42. package/dist/generated/types/org/hypercerts/context/measurement.d.ts +43 -0
  43. package/dist/generated/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  44. package/dist/generated/types/org/hypercerts/defs.d.ts +8 -44
  45. package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
  46. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +1 -1
  47. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  48. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts +20 -0
  49. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  50. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts +36 -0
  51. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  52. package/dist/index.cjs +2570 -1235
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.mjs +2512 -1201
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/lexicons.cjs +932 -397
  57. package/dist/lexicons.cjs.map +1 -1
  58. package/dist/lexicons.d.ts +1631 -625
  59. package/dist/lexicons.d.ts.map +1 -1
  60. package/dist/lexicons.mjs +932 -397
  61. package/dist/lexicons.mjs.map +1 -1
  62. package/dist/types/app/certified/actor/organization.d.ts +32 -0
  63. package/dist/types/app/certified/actor/organization.d.ts.map +1 -0
  64. package/dist/types/app/certified/actor/profile.d.ts +30 -0
  65. package/dist/types/app/certified/actor/profile.d.ts.map +1 -0
  66. package/dist/types/app/certified/badge/award.d.ts +2 -0
  67. package/dist/types/app/certified/badge/award.d.ts.map +1 -1
  68. package/dist/types/app/certified/badge/response.d.ts +1 -1
  69. package/dist/types/app/certified/badge/response.d.ts.map +1 -1
  70. package/dist/types/app/certified/defs.d.ts +11 -1
  71. package/dist/types/app/certified/defs.d.ts.map +1 -1
  72. package/dist/types/app/certified/location.d.ts +13 -5
  73. package/dist/types/app/certified/location.d.ts.map +1 -1
  74. package/dist/types/org/hyperboards/board.d.ts +75 -0
  75. package/dist/types/org/hyperboards/board.d.ts.map +1 -0
  76. package/dist/types/org/hyperboards/displayProfile.d.ts +31 -0
  77. package/dist/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  78. package/dist/types/org/hypercerts/claim/activity.d.ts +30 -11
  79. package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  80. package/dist/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  81. package/dist/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  82. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  83. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  84. package/dist/types/org/hypercerts/claim/rights.d.ts +3 -3
  85. package/dist/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  86. package/dist/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  87. package/dist/types/org/hypercerts/collection.d.ts.map +1 -0
  88. package/dist/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  89. package/dist/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  90. package/dist/types/org/hypercerts/context/attachment.d.ts +35 -0
  91. package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  92. package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts/context}/evaluation.d.ts +15 -15
  93. package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  94. package/dist/types/org/hypercerts/context/measurement.d.ts +43 -0
  95. package/dist/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  96. package/dist/types/org/hypercerts/defs.d.ts +8 -44
  97. package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
  98. package/dist/types/org/hypercerts/funding/receipt.d.ts +1 -1
  99. package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  100. package/dist/types/org/hypercerts/workscope/cel.d.ts +20 -0
  101. package/dist/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  102. package/dist/types/org/hypercerts/workscope/tag.d.ts +36 -0
  103. package/dist/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  104. package/lexicons/app/certified/actor/organization.json +70 -0
  105. package/lexicons/app/certified/actor/profile.json +61 -0
  106. package/lexicons/app/certified/badge/award.json +8 -1
  107. package/lexicons/app/certified/badge/definition.json +8 -3
  108. package/lexicons/app/certified/badge/response.json +3 -2
  109. package/lexicons/app/certified/defs.json +11 -3
  110. package/lexicons/app/certified/location.json +29 -6
  111. package/lexicons/org/hyperboards/board.json +152 -0
  112. package/lexicons/org/hyperboards/displayProfile.json +64 -0
  113. package/lexicons/org/hypercerts/claim/activity.json +57 -39
  114. package/lexicons/org/hypercerts/claim/{contributionDetails.json → contribution.json} +4 -4
  115. package/lexicons/org/hypercerts/claim/contributorInformation.json +3 -2
  116. package/lexicons/org/hypercerts/claim/rights.json +5 -3
  117. package/lexicons/org/hypercerts/{claim/collection.json → collection.json} +15 -7
  118. package/lexicons/org/hypercerts/context/acknowledgement.json +42 -0
  119. package/lexicons/org/hypercerts/context/attachment.json +77 -0
  120. package/lexicons/org/hypercerts/{claim → context}/evaluation.json +22 -22
  121. package/lexicons/org/hypercerts/context/measurement.json +107 -0
  122. package/lexicons/org/hypercerts/defs.json +14 -89
  123. package/lexicons/org/hypercerts/funding/receipt.json +12 -6
  124. package/lexicons/org/hypercerts/workscope/cel.json +39 -0
  125. package/lexicons/org/hypercerts/workscope/tag.json +87 -0
  126. package/package.json +2 -2
  127. package/dist/generated/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  128. package/dist/generated/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  129. package/dist/generated/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  130. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts +0 -29
  131. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  132. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts +0 -30
  133. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  134. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  135. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  136. package/dist/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  137. package/dist/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  138. package/dist/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  139. package/dist/types/org/hypercerts/claim/evidence.d.ts +0 -29
  140. package/dist/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  141. package/dist/types/org/hypercerts/claim/measurement.d.ts +0 -30
  142. package/dist/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  143. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  144. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  145. package/lexicons/org/hypercerts/claim/evidence.json +0 -57
  146. package/lexicons/org/hypercerts/claim/measurement.json +0 -70
  147. package/lexicons/org/hypercerts/helper/workScopeTag.json +0 -65
package/SCHEMAS.md CHANGED
@@ -15,152 +15,230 @@ Hypercerts-specific lexicons for tracking impact work and claims.
15
15
 
16
16
  #### Properties
17
17
 
18
- | Property | Type | Required | Description | Comments |
19
- | ------------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
20
- | `title` | `string` | ✅ | Title of the hypercert. | maxLength: 256 |
21
- | `shortDescription` | `string` | ✅ | Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`. | maxLength: 3000, maxGraphemes: 300 |
22
- | `shortDescriptionFacets` | `ref` | ❌ | Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc). | |
23
- | `description` | `string` | ❌ | Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`. | maxLength: 30000, maxGraphemes: 3000 |
24
- | `descriptionFacets` | `ref` | ❌ | Rich text annotations for `description` (mentions, URLs, hashtags, etc). | |
25
- | `image` | `union` | ❌ | The hypercert visual representation as a URI or image blob. | |
26
- | `workScope` | `union` | ❌ | Work scope logic expression using boolean operators (all/any/not) and atomic scope references. | |
27
- | `startDate` | `string` | ❌ | When the work began | |
28
- | `endDate` | `string` | ❌ | When the work ended | |
29
- | `contributors` | `ref` | ❌ | An array of contributor objects, each containing contributor information, weight, and contribution details. | |
30
- | `rights` | `ref` | ❌ | A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights. | |
31
- | `locations` | `ref` | | An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location. | |
32
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
18
+ | Property | Type | Required | Description | Comments |
19
+ | ------------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
20
+ | `title` | `string` | ✅ | Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024') | maxLength: 256 |
21
+ | `shortDescription` | `string` | ✅ | Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`. | maxLength: 3000, maxGraphemes: 300 |
22
+ | `shortDescriptionFacets` | `ref[]` | ❌ | Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc). | |
23
+ | `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
24
+ | `image` | `union` | ❌ | The hypercert visual representation as a URI or image blob. | |
25
+ | `contributors` | `ref[]` | ❌ | An array of contributor objects, each containing contributor information, weight, and contribution details. | maxLength: 1000 |
26
+ | `workScope` | `union` | ❌ | Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes. | |
27
+ | `startDate` | `string` | ❌ | When the work began | |
28
+ | `endDate` | `string` | ❌ | When the work ended | |
29
+ | `locations` | `ref[]` | ❌ | An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location. | maxLength: 1000 |
30
+ | `rights` | `ref` | ❌ | A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights. | |
31
+ | `createdAt` | `string` | | Client-declared timestamp when this record was originally created | |
33
32
 
34
33
  #### Defs
35
34
 
36
- ##### contributor
35
+ ##### `org.hypercerts.claim.activity#contributor`
37
36
 
38
- | Property | Type | Required | Description |
39
- | --------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
40
- | `contributorIdentity` | `union` | ✅ | Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record. |
41
- | `contributionWeight` | `string` | ❌ | 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. |
42
- | `contributionDetails` | `union` | ❌ | Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record. |
37
+ | Property | Type | Required | Description |
38
+ | --------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
39
+ | `contributorIdentity` | `union` | ✅ | 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. |
40
+ | `contributionWeight` | `string` | ❌ | 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. |
41
+ | `contributionDetails` | `union` | ❌ | 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. |
42
+
43
+ ##### `org.hypercerts.claim.activity#contributorIdentity`
44
+
45
+ | Property | Type | Required | Description |
46
+ | ---------- | -------- | -------- | ---------------------------------------------------- |
47
+ | `identity` | `string` | ✅ | The contributor identity string (DID or identifier). |
48
+
49
+ ##### `org.hypercerts.claim.activity#contributorRole`
50
+
51
+ | Property | Type | Required | Description |
52
+ | -------- | -------- | -------- | --------------------------------- |
53
+ | `role` | `string` | ✅ | The contribution role or details. |
54
+
55
+ ##### `org.hypercerts.claim.activity#workScopeString`
56
+
57
+ | Property | Type | Required | Description |
58
+ | -------- | -------- | -------- | ---------------------------------- |
59
+ | `scope` | `string` | ✅ | The work scope description string. |
43
60
 
44
61
  ---
45
62
 
46
- ### `org.hypercerts.claim.evaluation`
63
+ ### `org.hypercerts.claim.contribution`
47
64
 
48
- **Description:** An evaluation of a hypercert record (e.g. an activity and its impact).
65
+ **Description:** Details about a specific contribution including role, description, and timeframe.
66
+
67
+ **Key:** `tid`
68
+
69
+ #### Properties
70
+
71
+ | Property | Type | Required | Description | Comments |
72
+ | ------------------------- | -------- | -------- | ------------------------------------------------------------------------------------- | ------------------------------------ |
73
+ | `role` | `string` | ❌ | Role or title of the contributor. | maxLength: 100 |
74
+ | `contributionDescription` | `string` | ❌ | Description of what the contribution concretely involved. | maxLength: 10000, maxGraphemes: 1000 |
75
+ | `startDate` | `string` | ❌ | When this contribution started. Should fall within the parent hypercert's timeframe. | |
76
+ | `endDate` | `string` | ❌ | When this contribution finished. Should fall within the parent hypercert's timeframe. | |
77
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
78
+
79
+ ---
80
+
81
+ ### `org.hypercerts.claim.contributorInformation`
82
+
83
+ **Description:** Contributor information including identifier, display name, and image.
84
+
85
+ **Key:** `tid`
86
+
87
+ #### Properties
88
+
89
+ | Property | Type | Required | Description | Comments |
90
+ | ------------- | -------- | -------- | ------------------------------------------------------------------ | --------------- |
91
+ | `identifier` | `string` | ❌ | DID (did:plc:...) or URI to a social profile of the contributor. | maxLength: 2048 |
92
+ | `displayName` | `string` | ❌ | Human-readable name for the contributor as it should appear in UI. | maxLength: 100 |
93
+ | `image` | `union` | ❌ | The contributor visual representation as a URI or image blob. | |
94
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
95
+
96
+ ---
97
+
98
+ ### `org.hypercerts.claim.rights`
99
+
100
+ **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.
49
101
 
50
102
  **Key:** `tid`
51
103
 
52
104
  #### Properties
53
105
 
54
- | Property | Type | Required | Description | Comments |
55
- | -------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
56
- | `subject` | `ref` | | A strong reference to what is being evaluated. (e.g activity, measurement, contribution, etc.) | |
57
- | `evaluators` | `ref` | ✅ | DIDs of the evaluators | maxLength: 1000 |
58
- | `content` | `union` | | Evaluation data (URIs or blobs) containing detailed reports or methodology | maxLength: 100 |
59
- | `measurements` | `ref` | ❌ | Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.claim.measurement | maxLength: 100 |
60
- | `summary` | `string` | ✅ | Brief evaluation summary | maxLength: 5000, maxGraphemes: 1000 |
61
- | `score` | `ref` | ❌ | Overall score for an evaluation on a numeric scale. | |
62
- | `location` | `ref` | ❌ | An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location. | |
63
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
106
+ | Property | Type | Required | Description | Comments |
107
+ | ------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------ | ------------------------------------ |
108
+ | `rightsName` | `string` | | Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0') | maxLength: 100 |
109
+ | `rightsType` | `string` | ✅ | Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search | maxLength: 10 |
110
+ | `rightsDescription` | `string` | | Detailed explanation of the rights holders' permissions, restrictions, and conditions | maxLength: 10000, maxGraphemes: 1000 |
111
+ | `attachment` | `union` | ❌ | An attachment to define the rights further, e.g. a legal document. | |
112
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
113
+
114
+ ---
115
+
116
+ ### `org.hypercerts.collection`
117
+
118
+ **Description:** A collection/group of items (activities and/or other collections). Collections support recursive nesting.
119
+
120
+ **Key:** `tid`
121
+
122
+ #### Properties
123
+
124
+ | Property | Type | Required | Description | Comments |
125
+ | ------------------ | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
126
+ | `type` | `string` | ❌ | The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection. | maxLength: 64 |
127
+ | `title` | `string` | ✅ | Display name for this collection (e.g. 'Q1 2025 Impact Projects') | maxLength: 800, maxGraphemes: 80 |
128
+ | `shortDescription` | `string` | ❌ | Short summary of this collection, suitable for previews and list views | maxLength: 3000, maxGraphemes: 300 |
129
+ | `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
130
+ | `avatar` | `union` | ❌ | The collection's avatar/profile image as a URI or image blob. | |
131
+ | `banner` | `union` | ❌ | Larger horizontal image to display behind the collection view. | |
132
+ | `items` | `ref[]` | ❌ | Array of items in this collection with optional weights. | maxLength: 1000 |
133
+ | `location` | `ref` | ❌ | A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location. | |
134
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
64
135
 
65
136
  #### Defs
66
137
 
67
- ##### score
138
+ ##### `org.hypercerts.collection#item`
68
139
 
69
- | Property | Type | Required | Description |
70
- | -------- | --------- | -------- | -------------------------------------------- |
71
- | `min` | `integer` | ✅ | Minimum value of the scale, e.g. 0 or 1. |
72
- | `max` | `integer` | | Maximum value of the scale, e.g. 5 or 10. |
73
- | `value` | `integer` | ✅ | Score within the inclusive range [min, max]. |
140
+ | Property | Type | Required | Description |
141
+ | ---------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
142
+ | `itemIdentifier` | `ref` | ✅ | Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection). |
143
+ | `itemWeight` | `string` | | 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. |
74
144
 
75
145
  ---
76
146
 
77
- ### `org.hypercerts.claim.evidence`
147
+ ### `org.hypercerts.context.acknowledgement`
78
148
 
79
- **Description:** A piece of evidence related to a hypercert record (e.g. an activity, project, claim, or evaluation). Evidence may support, clarify, or challenge the referenced subject.
149
+ **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.
80
150
 
81
151
  **Key:** `tid`
82
152
 
83
153
  #### Properties
84
154
 
85
- | Property | Type | Required | Description | Comments |
86
- | ------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
87
- | `subject` | `ref` | | A strong reference to the record this evidence relates to (e.g. an activity, project, claim, or evaluation). | |
88
- | `content` | `union` | | A piece of evidence (URI or blob) related to the subject record; it may support, clarify, or challenge a hypercert claim. | |
89
- | `title` | `string` | ✅ | Title to describe the nature of the evidence. | maxLength: 256 |
90
- | `shortDescription` | `string` | ❌ | Short description explaining what this evidence shows. | maxLength: 3000, maxGraphemes: 300 |
91
- | `description` | `string` | | Longer description describing the evidence in more detail. | maxLength: 30000, maxGraphemes: 3000 |
92
- | `relationType` | `string` | ❌ | How this evidence relates to the subject. | Known values: `supports`, `challenges`, `clarifies` |
93
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
155
+ | Property | Type | Required | Description | Comments |
156
+ | -------------- | --------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
157
+ | `subject` | `ref` | | The record being acknowledged (e.g. an activity, a contributor information record, an evaluation). | |
158
+ | `context` | `union` | | 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. | |
159
+ | `acknowledged` | `boolean` | ✅ | Whether the relationship is acknowledged (true) or rejected (false). | |
160
+ | `comment` | `string` | ❌ | Optional plain-text comment providing additional context or reasoning. | maxLength: 10000, maxGraphemes: 1000 |
161
+ | `createdAt` | `string` | | Client-declared timestamp when this record was originally created. | |
94
162
 
95
163
  ---
96
164
 
97
- ### `org.hypercerts.claim.measurement`
165
+ ### `org.hypercerts.context.attachment`
98
166
 
99
- **Description:** Measurement data related to a hypercert record (e.g. an activity and its impact).
167
+ **Description:** An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).
100
168
 
101
169
  **Key:** `tid`
102
170
 
103
171
  #### Properties
104
172
 
105
- | Property | Type | Required | Description | Comments |
106
- | ------------- | -------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
107
- | `subject` | `ref` | ❌ | A strong reference to the record this measurement refers to (e.g. an activity, project, or claim). | |
108
- | `measurers` | `ref` | | DIDs of the entity (or entities) that measured this data | maxLength: 100 |
109
- | `metric` | `string` | | The metric being measured | maxLength: 500 |
110
- | `value` | `string` | ✅ | The measured value | maxLength: 500 |
111
- | `methodType` | `string` | ❌ | Short identifier for the measurement methodology | maxLength: 30 |
112
- | `methodURI` | `string` | ❌ | URI to methodology documentation, standard protocol, or measurement procedure | |
113
- | `evidenceURI` | `string` | ❌ | URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets) | maxLength: 50 |
114
- | `location` | `ref` | ❌ | A strong reference to the location where the measurement was taken. The record referenced must conform with the lexicon app.certified.location | |
115
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
173
+ | Property | Type | Required | Description | Comments |
174
+ | ------------------------ | --------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
175
+ | `subjects` | `ref[]` | ❌ | 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. | maxLength: 100 |
176
+ | `contentType` | `string` | | The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc. | maxLength: 64 |
177
+ | `content` | `union[]` | | The files, documents, or external references included in this attachment record. | maxLength: 100 |
178
+ | `title` | `string` | ✅ | Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings') | maxLength: 256 |
179
+ | `shortDescription` | `string` | ❌ | Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`. | maxLength: 3000, maxGraphemes: 300 |
180
+ | `shortDescriptionFacets` | `ref[]` | ❌ | Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc). | |
181
+ | `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
182
+ | `location` | `ref` | ❌ | A strong reference to the location where this attachment's subject matter occurred. The record referenced must conform with the lexicon app.certified.location. | |
183
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
116
184
 
117
185
  ---
118
186
 
119
- ### `org.hypercerts.claim.collection`
187
+ ### `org.hypercerts.context.evaluation`
120
188
 
121
- **Description:** A collection/group of items (activities and/or other collections). Collections support recursive nesting. Use app.certified.location as a sidecar (same TID) for location metadata.
189
+ **Description:** An evaluation of a hypercert record (e.g. an activity and its impact).
122
190
 
123
191
  **Key:** `tid`
124
192
 
125
193
  #### Properties
126
194
 
127
- | Property | Type | Required | Description | Comments |
128
- | ------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------ | ---------------------------------- |
129
- | `type` | `string` | ❌ | The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection. | |
130
- | `title` | `string` | ✅ | The title of this collection | maxLength: 800, maxGraphemes: 80 |
131
- | `shortDescription` | `string` | ❌ | Short summary of this collection, suitable for previews and list views | maxLength: 3000, maxGraphemes: 300 |
132
- | `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
133
- | `avatar` | `union` | | The collection's avatar/profile image as a URI or image blob. | |
134
- | `banner` | `union` | ❌ | Larger horizontal image to display behind the collection view. | |
135
- | `items` | `ref` | | Array of items in this collection with optional weights. | |
136
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
195
+ | Property | Type | Required | Description | Comments |
196
+ | -------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------- |
197
+ | `subject` | `ref` | ❌ | A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.) | |
198
+ | `evaluators` | `ref[]` | ✅ | DIDs of the evaluators | maxLength: 1000 |
199
+ | `content` | `union[]` | ❌ | Evaluation data (URIs or blobs) containing detailed reports or methodology | maxLength: 100 |
200
+ | `measurements` | `ref[]` | ❌ | Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement | maxLength: 100 |
201
+ | `summary` | `string` | | Brief evaluation summary | maxLength: 5000, maxGraphemes: 1000 |
202
+ | `score` | `ref` | ❌ | Overall score for an evaluation on a numeric scale. | |
203
+ | `location` | `ref` | | An optional reference for georeferenced evaluations. The record referenced must conform with the lexicon app.certified.location. | |
204
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
137
205
 
138
206
  #### Defs
139
207
 
140
- ##### item
208
+ ##### `org.hypercerts.context.evaluation#score`
141
209
 
142
- | Property | Type | Required | Description |
143
- | ---------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
144
- | `itemIdentifier` | `ref` | ✅ | Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection). |
145
- | `itemWeight` | `string` | | 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. |
210
+ | Property | Type | Required | Description |
211
+ | -------- | --------- | -------- | -------------------------------------------- |
212
+ | `min` | `integer` | ✅ | Minimum value of the scale, e.g. 0 or 1. |
213
+ | `max` | `integer` | | Maximum value of the scale, e.g. 5 or 10. |
214
+ | `value` | `integer` | ✅ | Score within the inclusive range [min, max]. |
146
215
 
147
216
  ---
148
217
 
149
- ### `org.hypercerts.claim.rights`
218
+ ### `org.hypercerts.context.measurement`
150
219
 
151
- **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.
220
+ **Description:** Measurement data related to one or more records (e.g. activities, projects, etc.).
152
221
 
153
222
  **Key:** `tid`
154
223
 
155
224
  #### Properties
156
225
 
157
- | Property | Type | Required | Description | Comments |
158
- | ------------------- | -------- | -------- | ------------------------------------------------------------------ | -------------- |
159
- | `rightsName` | `string` | | Full name of the rights | maxLength: 100 |
160
- | `rightsType` | `string` | ✅ | Short rights identifier for easier search | maxLength: 10 |
161
- | `rightsDescription` | `string` | ✅ | Description of the rights of this hypercert | |
162
- | `attachment` | `union` | | An attachment to define the rights further, e.g. a legal document. | |
163
- | `createdAt` | `string` | | Client-declared timestamp when this record was originally created | |
226
+ | Property | Type | Required | Description | Comments |
227
+ | --------------- | ---------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
228
+ | `subjects` | `ref[]` | | Strong references to the records this measurement refers to (e.g. activities, projects, or claims). | maxLength: 100 |
229
+ | `metric` | `string` | ✅ | The metric being measured, e.g. forest area restored, number of users, etc. | maxLength: 500 |
230
+ | `unit` | `string` | ✅ | The unit of the measured value (e.g. kg CO₂e, hectares, %, index score). | maxLength: 50 |
231
+ | `value` | `string` | | The measured value as a numeric string (e.g. '1234.56') | maxLength: 500 |
232
+ | `startDate` | `string` | | The start date and time when the measurement began. | |
233
+ | `endDate` | `string` | ❌ | The end date and time when the measurement ended. For one-time measurements, this should equal the start date. | |
234
+ | `locations` | `ref[]` | ❌ | Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon. | maxLength: 100 |
235
+ | `methodType` | `string` | ❌ | Short identifier for the measurement methodology | maxLength: 30 |
236
+ | `methodURI` | `string` | ❌ | URI to methodology documentation, standard protocol, or measurement procedure | |
237
+ | `evidenceURI` | `string[]` | ❌ | URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets) | maxLength: 50 |
238
+ | `measurers` | `ref[]` | ❌ | DIDs of the entities that performed this measurement | maxLength: 100 |
239
+ | `comment` | `string` | ❌ | Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`. | maxLength: 3000, maxGraphemes: 300 |
240
+ | `commentFacets` | `ref[]` | ❌ | Rich text annotations for `comment` (mentions, URLs, hashtags, etc). | |
241
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
164
242
 
165
243
  ---
166
244
 
@@ -172,46 +250,65 @@ Hypercerts-specific lexicons for tracking impact work and claims.
172
250
 
173
251
  #### Properties
174
252
 
175
- | Property | Type | Required | Description | Comments |
176
- | ---------------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------- |
177
- | `from` | `ref` | ✅ | DID of the sender who transferred the funds. Leave empty if sender wants to stay anonymous. | |
178
- | `to` | `string` | ✅ | The recipient of the funds. Can be identified by DID or a clear-text name. | |
179
- | `amount` | `string` | ✅ | Amount of funding received. | |
180
- | `currency` | `string` | ✅ | Currency of the payment (e.g. EUR, USD, ETH). | |
181
- | `paymentRail` | `string` | ❌ | How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor). | |
182
- | `paymentNetwork` | `string` | ❌ | Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal). | |
183
- | `transactionId` | `string` | ❌ | 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. | |
184
- | `for` | `string` | ❌ | Optional reference to the activity, project, or organization this funding relates to. | |
185
- | `notes` | `string` | ❌ | Optional notes or additional context for this funding receipt. | maxLength: 500 |
186
- | `occurredAt` | `string` | ❌ | Timestamp when the payment occurred. | |
187
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this receipt record was created. | |
253
+ | Property | Type | Required | Description | Comments |
254
+ | ---------------- | -------- | -------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
255
+ | `from` | `ref` | ✅ | DID of the sender who transferred the funds. Leave empty if sender wants to stay anonymous. | |
256
+ | `to` | `string` | ✅ | The recipient of the funds. Can be identified by DID or a clear-text name. | maxLength: 2048 |
257
+ | `amount` | `string` | ✅ | Amount of funding received as a numeric string (e.g. '1000.50'). | maxLength: 50 |
258
+ | `currency` | `string` | ✅ | Currency of the payment (e.g. EUR, USD, ETH). | maxLength: 10 |
259
+ | `paymentRail` | `string` | ❌ | How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor). | maxLength: 50 |
260
+ | `paymentNetwork` | `string` | ❌ | Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal). | maxLength: 50 |
261
+ | `transactionId` | `string` | ❌ | 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. | maxLength: 256 |
262
+ | `for` | `string` | ❌ | Optional reference to the activity, project, or organization this funding relates to. | |
263
+ | `notes` | `string` | ❌ | Optional notes or additional context for this funding receipt. | maxLength: 500 |
264
+ | `occurredAt` | `string` | ❌ | Timestamp when the payment occurred. | |
265
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this receipt record was created. | |
188
266
 
189
267
  ---
190
268
 
191
- ## Certified Lexicons
269
+ ### `org.hypercerts.workscope.cel`
192
270
 
193
- Certified lexicons are common/shared lexicons that can be used across multiple protocols.
271
+ **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.
194
272
 
195
- ### `org.hypercerts.defs`
273
+ #### Properties
196
274
 
197
- **Description:** Common type definitions used across all certified protocols.
275
+ | Property | Type | Required | Description | Comments |
276
+ | ------------ | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
277
+ | `expression` | `string` | ✅ | A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE' | maxLength: 10000, maxGraphemes: 5000 |
278
+ | `usedTags` | `ref[]` | ✅ | 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. | maxLength: 100 |
279
+ | `version` | `string` | ✅ | CEL context schema version. | maxLength: 16, Known values: `v1` |
280
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this expression was originally created. | |
198
281
 
199
- #### Defs
282
+ ---
283
+
284
+ ### `org.hypercerts.workscope.tag`
285
+
286
+ **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.
287
+
288
+ **Key:** `tid`
289
+
290
+ #### Properties
200
291
 
201
- | Def | Type | Description | Comments |
202
- | --------------- | -------- | -------------------------------------------------------------- | --------------------------------------- |
203
- | `uri` | `object` | Object containing a URI to external data | Has `uri` property (string, format uri) |
204
- | `smallBlob` | `object` | Object containing a blob to external data | Has `blob` property (blob, up to 10MB) |
205
- | `largeBlob` | `object` | Object containing a blob to external data | Has `blob` property (blob, up to 100MB) |
206
- | `smallImage` | `object` | Object containing a small image | Has `image` property (blob, up to 5MB) |
207
- | `largeImage` | `object` | Object containing a large image | Has `image` property (blob, up to 10MB) |
208
- | `workScopeAll` | `object` | Logical AND operation: all arguments must be satisfied. | |
209
- | `workScopeAny` | `object` | Logical OR operation: at least one argument must be satisfied. | |
210
- | `workScopeNot` | `object` | Logical NOT operation: the argument must not be satisfied. | |
211
- | `workScopeAtom` | `object` | Atomic scope reference: a strong reference to a scope record. | |
292
+ | Property | Type | Required | Description | Comments |
293
+ | ------------------- | ---------- | -------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------- |
294
+ | `key` | `string` | | Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions. | maxLength: 120 |
295
+ | `name` | `string` | | Human-readable name for this scope. | maxLength: 200 |
296
+ | `category` | `string` | | Category type of this scope. | maxLength: 50, Known values: `topic`, `language`, `domain`, `method` |
297
+ | `description` | `string` | | Optional longer description of this scope. | maxLength: 10000, maxGraphemes: 1000 |
298
+ | `parent` | `ref` | | 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. | |
299
+ | `status` | `string` | | Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy. | maxLength: 20, Known values: `proposed`, `accepted`, `deprecated` |
300
+ | `supersededBy` | `ref` | | When status is 'deprecated', points to the replacement work scope tag record. The record referenced must conform with the lexicon org.hypercerts.workscope.tag. | |
301
+ | `aliases` | `string[]` | ❌ | 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. | maxLength: 50 |
302
+ | `sameAs` | `string[]` | ❌ | URIs to semantically equivalent concepts in external ontologies or taxonomies (e.g., Wikidata QIDs, ENVO terms, SDG targets). Used for interoperability, not as documentation. | maxLength: 20 |
303
+ | `referenceDocument` | `union` | ❌ | Link to a governance or reference document where this work scope tag is defined and further explained. | |
304
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
212
305
 
213
306
  ---
214
307
 
308
+ ## Certified Lexicons
309
+
310
+ Certified lexicons are common/shared lexicons that can be used across multiple protocols.
311
+
215
312
  ### `app.certified.location`
216
313
 
217
314
  **Description:** A location reference
@@ -220,15 +317,23 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
220
317
 
221
318
  #### Properties
222
319
 
223
- | Property | Type | Required | Description | Comments |
224
- | -------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------ |
225
- | `lpVersion` | `string` | ✅ | The version of the Location Protocol | maxLength: 10 |
226
- | `srs` | `string` | ✅ | The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system. | maxLength: 100 |
227
- | `locationType` | `string` | ✅ | An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point) | maxLength: 20, Known values: `coordinate-decimal`, `geojson-point` |
228
- | `location` | `union` | ✅ | The location of where the work was performed as a URI or blob. | |
229
- | `name` | `string` | ❌ | Optional name for this location | maxLength: 1000, maxGraphemes: 100 |
230
- | `description` | `string` | ❌ | Optional description for this location | maxLength: 2000, maxGraphemes: 500 |
231
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
320
+ | Property | Type | Required | Description | Comments |
321
+ | -------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
322
+ | `lpVersion` | `string` | ✅ | The version of the Location Protocol | maxLength: 10 |
323
+ | `srs` | `string` | ✅ | The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system. | maxLength: 100 |
324
+ | `locationType` | `string` | ✅ | 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 | maxLength: 20, Known values: `coordinate-decimal`, `geojson-point`, `geojson`, `h3`, `geohash`, `wkt`, `address`, `scaledCoordinates` |
325
+ | `location` | `union` | ✅ | The location of where the work was performed as a URI, blob, or inline string. | |
326
+ | `name` | `string` | ❌ | Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area') | maxLength: 1000, maxGraphemes: 100 |
327
+ | `description` | `string` | ❌ | Additional context about this location, such as its significance to the work or specific boundaries | maxLength: 2000, maxGraphemes: 500 |
328
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
329
+
330
+ #### Defs
331
+
332
+ ##### `app.certified.location#string`
333
+
334
+ | Property | Type | Required | Description |
335
+ | -------- | -------- | -------- | ------------------------- |
336
+ | `string` | `string` | ✅ | The location string value |
232
337
 
233
338
  ---
234
339
 
@@ -242,11 +347,11 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
242
347
 
243
348
  | Property | Type | Required | Description | Comments |
244
349
  | ---------------- | -------- | -------- | ---------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
245
- | `badgeType` | `string` | ✅ | Category of the badge (e.g. endorsement, participation, affiliation). | |
246
- | `title` | `string` | ✅ | Human-readable title of the badge. | |
350
+ | `badgeType` | `string` | ✅ | Category of the badge (e.g. endorsement, participation, affiliation). | maxLength: 100 |
351
+ | `title` | `string` | ✅ | Human-readable title of the badge. | maxLength: 256 |
247
352
  | `icon` | `blob` | ✅ | Icon representing the badge, stored as a blob for compact visual display. | maxSize: 1048576, accepts: image/png, image/jpeg, image/webp, image/svg+xml |
248
- | `description` | `string` | ❌ | Optional short statement describing what the badge represents. | |
249
- | `allowedIssuers` | `ref` | ❌ | Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it. | |
353
+ | `description` | `string` | ❌ | Optional short statement describing what the badge represents. | maxLength: 5000, maxGraphemes: 500 |
354
+ | `allowedIssuers` | `ref[]` | ❌ | Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it. | maxLength: 100 |
250
355
  | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
251
356
 
252
357
  ---
@@ -259,12 +364,13 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
259
364
 
260
365
  #### Properties
261
366
 
262
- | Property | Type | Required | Description |
263
- | ----------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- |
264
- | `badge` | `ref` | ✅ | Reference to the badge definition for this award. |
265
- | `subject` | `union` | ✅ | 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. |
266
- | `note` | `string` | ❌ | Optional statement explaining the reason for this badge award. |
267
- | `createdAt` | `string` | | Client-declared timestamp when this record was originally created |
367
+ | Property | Type | Required | Description | Comments |
368
+ | ----------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | --------------- |
369
+ | `badge` | `ref` | ✅ | Reference to the badge definition for this award. | |
370
+ | `subject` | `union` | ✅ | 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. | |
371
+ | `note` | `string` | ❌ | Optional statement explaining the reason for this badge award. | maxLength: 500 |
372
+ | `url` | `string` | | Optional URL the badge award links to. | maxLength: 2048 |
373
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
268
374
 
269
375
  ---
270
376
 
@@ -276,12 +382,203 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
276
382
 
277
383
  #### Properties
278
384
 
279
- | Property | Type | Required | Description |
280
- | ------------ | -------- | -------- | ------------------------------------------------------------------------ |
281
- | `badgeAward` | `ref` | ✅ | Reference to the badge award. |
282
- | `response` | `string` | ✅ | The recipient’s response for the badge (accepted or rejected). |
283
- | `weight` | `string` | ❌ | Optional relative weight for accepted badges, assigned by the recipient. |
284
- | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created |
385
+ | Property | Type | Required | Description | Comments |
386
+ | ------------ | -------- | -------- | ------------------------------------------------------------------------ | ------------------------------------ |
387
+ | `badgeAward` | `ref` | ✅ | Reference to the badge award. | |
388
+ | `response` | `string` | ✅ | The recipient’s response for the badge (accepted or rejected). | Known values: `accepted`, `rejected` |
389
+ | `weight` | `string` | ❌ | Optional relative weight for accepted badges, assigned by the recipient. | maxLength: 50 |
390
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
391
+
392
+ ---
393
+
394
+ ### `app.certified.actor.organization`
395
+
396
+ **Description:** Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.
397
+
398
+ **Key:** `literal:self`
399
+
400
+ #### Properties
401
+
402
+ | Property | Type | Required | Description | Comments |
403
+ | ------------------ | ---------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------- |
404
+ | `organizationType` | `string[]` | ❌ | Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative'). | maxLength: 10 |
405
+ | `urls` | `ref[]` | ❌ | Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL. | |
406
+ | `location` | `ref` | ❌ | A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location. | |
407
+ | `foundedDate` | `string` | ❌ | 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. | |
408
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
409
+
410
+ #### Defs
411
+
412
+ ##### `app.certified.actor.organization#urlItem`
413
+
414
+ | Property | Type | Required | Description |
415
+ | -------- | -------- | -------- | ---------------------------------------------------------------------------------- |
416
+ | `url` | `string` | ✅ | The URL. |
417
+ | `label` | `string` | ❌ | Optional human-readable label for this URL (e.g. 'Support page', 'Donation page'). |
418
+
419
+ ---
420
+
421
+ ### `app.certified.actor.profile`
422
+
423
+ **Description:** A declaration of a Certified account profile.
424
+
425
+ **Key:** `literal:self`
426
+
427
+ #### Properties
428
+
429
+ | Property | Type | Required | Description | Comments |
430
+ | ------------- | -------- | -------- | ------------------------------------------------------------------------------ | ---------------------------------- |
431
+ | `displayName` | `string` | ❌ | Display name for the account | maxLength: 640, maxGraphemes: 64 |
432
+ | `description` | `string` | ❌ | Free-form profile description text. | maxLength: 2560, maxGraphemes: 256 |
433
+ | `pronouns` | `string` | ❌ | Free-form pronouns text. | maxLength: 200, maxGraphemes: 20 |
434
+ | `website` | `string` | ❌ | Account website URL | |
435
+ | `avatar` | `union` | ❌ | Small image to be displayed next to posts from account. AKA, 'profile picture' | |
436
+ | `banner` | `union` | ❌ | Larger horizontal image to display behind profile view. | |
437
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
438
+
439
+ ---
440
+
441
+ ## Type Definitions
442
+
443
+ Common type definitions used across all protocols.
444
+
445
+ ### `app.certified.defs`
446
+
447
+ **Description:** Common type definitions used across certified protocols.
448
+
449
+ #### Defs
450
+
451
+ ##### `app.certified.defs#did`
452
+
453
+ | Property | Type | Required | Description |
454
+ | -------- | -------- | -------- | --------------------- |
455
+ | `did` | `string` | ✅ | The DID string value. |
456
+
457
+ ---
458
+
459
+ ### `org.hypercerts.defs`
460
+
461
+ **Description:** Common type definitions used across all Hypercerts protocols.
462
+
463
+ #### Defs
464
+
465
+ ##### `org.hypercerts.defs#uri`
466
+
467
+ | Property | Type | Required | Description |
468
+ | -------- | -------- | -------- | -------------------- |
469
+ | `uri` | `string` | ✅ | URI to external data |
470
+
471
+ ##### `org.hypercerts.defs#smallBlob`
472
+
473
+ | Property | Type | Required | Description |
474
+ | -------- | ------ | -------- | ---------------------------------- |
475
+ | `blob` | `blob` | ✅ | Blob to external data (up to 10MB) |
476
+
477
+ ##### `org.hypercerts.defs#largeBlob`
478
+
479
+ | Property | Type | Required | Description |
480
+ | -------- | ------ | -------- | ----------------------------------- |
481
+ | `blob` | `blob` | ✅ | Blob to external data (up to 100MB) |
482
+
483
+ ##### `org.hypercerts.defs#smallImage`
484
+
485
+ | Property | Type | Required | Description |
486
+ | -------- | ------ | -------- | ----------------- |
487
+ | `image` | `blob` | ✅ | Image (up to 5MB) |
488
+
489
+ ##### `org.hypercerts.defs#smallVideo`
490
+
491
+ | Property | Type | Required | Description |
492
+ | -------- | ------ | -------- | ------------------ |
493
+ | `video` | `blob` | ✅ | Video (up to 20MB) |
494
+
495
+ ##### `org.hypercerts.defs#largeImage`
496
+
497
+ | Property | Type | Required | Description |
498
+ | -------- | ------ | -------- | ------------------ |
499
+ | `image` | `blob` | ✅ | Image (up to 10MB) |
500
+
501
+ ---
502
+
503
+ ## External Lexicons
504
+
505
+ External lexicons from other protocols and systems.
506
+
507
+ ### `com.atproto.repo.strongRef`
508
+
509
+ #### Properties
510
+
511
+ | Property | Type | Required | Description |
512
+ | -------- | -------- | -------- | ----------- |
513
+ | `uri` | `string` | ✅ | |
514
+ | `cid` | `string` | ✅ | |
515
+
516
+ ---
517
+
518
+ ### `org.hyperboards.board`
519
+
520
+ **Description:** Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.
521
+
522
+ **Key:** `tid`
523
+
524
+ #### Properties
525
+
526
+ | Property | Type | Required | Description | Comments |
527
+ | -------------------- | -------- | -------- | -------------------------------------------------------------------------------------------------------- | --------------- |
528
+ | `subject` | `ref` | ✅ | Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes. | |
529
+ | `config` | `ref` | ❌ | Visual configuration for a hyperboard's background, colors, and layout. | |
530
+ | `contributorConfigs` | `ref[]` | ❌ | Per-contributor configuration entries for this board. | maxLength: 1000 |
531
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
532
+
533
+ #### Defs
534
+
535
+ ##### `org.hyperboards.board#boardConfig`
536
+
537
+ | Property | Type | Required | Description |
538
+ | --------------------- | --------- | -------- | --------------------------------------------------------------------- |
539
+ | `backgroundType` | `string` | ❌ | Type of background content. |
540
+ | `backgroundImage` | `union` | ❌ | Background image as a URI or image blob. |
541
+ | `backgroundIframeUrl` | `string` | ❌ | URI of the background iframe. |
542
+ | `backgroundGrayscale` | `boolean` | ❌ | Whether the background is rendered in grayscale. Default: true. |
543
+ | `backgroundOpacity` | `integer` | ❌ | Background opacity as a percentage (0–100). |
544
+ | `backgroundColor` | `string` | ❌ | Background color as a hex string (e.g. '#ffffff'). |
545
+ | `borderColor` | `string` | ❌ | Border color as a hex string (e.g. '#000000'). |
546
+ | `grayscaleImages` | `boolean` | ❌ | Whether contributor images are rendered in grayscale. Default: false. |
547
+ | `imageShape` | `string` | ❌ | Shape used to crop contributor images on this board. |
548
+ | `aspectRatio` | `string` | ❌ | Display aspect ratio of the board. |
549
+
550
+ ##### `org.hyperboards.board#contributorConfig`
551
+
552
+ | Property | Type | Required | Description |
553
+ | ---------------- | --------- | -------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
554
+ | `contributor` | `union` | ✅ | 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. |
555
+ | `override` | `boolean` | ❌ | 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. |
556
+ | `displayName` | `string` | ❌ | Display name for this contributor on this board. |
557
+ | `image` | `union` | ❌ | Avatar or face image for this contributor on this board, as a URI or image blob. |
558
+ | `video` | `union` | ❌ | Video for this contributor, as a URI (embed/direct link) or uploaded video blob. |
559
+ | `hoverImage` | `union` | ❌ | Image overlay shown when hovering over this contributor, as a URI or image blob. |
560
+ | `hoverIframeUrl` | `string` | ❌ | Iframe overlay shown when hovering over this contributor. |
561
+ | `url` | `string` | ❌ | Click-through link URL for this contributor. |
562
+
563
+ ---
564
+
565
+ ### `org.hyperboards.displayProfile`
566
+
567
+ **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.
568
+
569
+ **Key:** `literal:self`
570
+
571
+ #### Properties
572
+
573
+ | Property | Type | Required | Description | Comments |
574
+ | ---------------- | -------- | -------- | ----------------------------------------------------------------------------------------------- | -------------------------------- |
575
+ | `displayName` | `string` | ❌ | Display name override for this user on hyperboards. | maxLength: 640, maxGraphemes: 64 |
576
+ | `image` | `union` | ❌ | Avatar or face image override for this user on hyperboards, as a URI or image blob. | |
577
+ | `video` | `union` | ❌ | Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob. | |
578
+ | `hoverImage` | `union` | ❌ | Default hover image for this user across boards, as a URI or image blob. | |
579
+ | `hoverIframeUrl` | `string` | ❌ | Default hover iframe URL for this user across boards. | maxLength: 2048 |
580
+ | `url` | `string` | ❌ | Default click-through link URL for this user across boards. | maxLength: 2048 |
581
+ | `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
285
582
 
286
583
  ---
287
584