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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (147) hide show
  1. package/CHANGELOG.md +702 -0
  2. package/README.md +278 -9
  3. package/SCHEMAS.md +440 -143
  4. package/dist/exports.d.ts +827 -294
  5. package/dist/exports.d.ts.map +1 -1
  6. package/dist/generated/exports.d.ts +827 -294
  7. package/dist/generated/exports.d.ts.map +1 -1
  8. package/dist/generated/lexicons.d.ts +1631 -625
  9. package/dist/generated/lexicons.d.ts.map +1 -1
  10. package/dist/generated/types/app/certified/actor/organization.d.ts +32 -0
  11. package/dist/generated/types/app/certified/actor/organization.d.ts.map +1 -0
  12. package/dist/generated/types/app/certified/actor/profile.d.ts +30 -0
  13. package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -0
  14. package/dist/generated/types/app/certified/badge/award.d.ts +2 -0
  15. package/dist/generated/types/app/certified/badge/award.d.ts.map +1 -1
  16. package/dist/generated/types/app/certified/badge/response.d.ts +1 -1
  17. package/dist/generated/types/app/certified/badge/response.d.ts.map +1 -1
  18. package/dist/generated/types/app/certified/defs.d.ts +11 -1
  19. package/dist/generated/types/app/certified/defs.d.ts.map +1 -1
  20. package/dist/generated/types/app/certified/location.d.ts +13 -5
  21. package/dist/generated/types/app/certified/location.d.ts.map +1 -1
  22. package/dist/generated/types/org/hyperboards/board.d.ts +75 -0
  23. package/dist/generated/types/org/hyperboards/board.d.ts.map +1 -0
  24. package/dist/generated/types/org/hyperboards/displayProfile.d.ts +31 -0
  25. package/dist/generated/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  26. package/dist/generated/types/org/hypercerts/claim/activity.d.ts +30 -11
  27. package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  28. package/dist/generated/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  29. package/dist/generated/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  30. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  31. package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  32. package/dist/generated/types/org/hypercerts/claim/rights.d.ts +3 -3
  33. package/dist/generated/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  34. package/dist/generated/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  35. package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -0
  36. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  37. package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  38. package/dist/generated/types/org/hypercerts/context/attachment.d.ts +35 -0
  39. package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  40. package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts/context}/evaluation.d.ts +15 -15
  41. package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  42. package/dist/generated/types/org/hypercerts/context/measurement.d.ts +43 -0
  43. package/dist/generated/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  44. package/dist/generated/types/org/hypercerts/defs.d.ts +8 -44
  45. package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
  46. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +1 -1
  47. package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  48. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts +20 -0
  49. package/dist/generated/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  50. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts +36 -0
  51. package/dist/generated/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  52. package/dist/index.cjs +2554 -1219
  53. package/dist/index.cjs.map +1 -1
  54. package/dist/index.mjs +2502 -1191
  55. package/dist/index.mjs.map +1 -1
  56. package/dist/lexicons.cjs +932 -397
  57. package/dist/lexicons.cjs.map +1 -1
  58. package/dist/lexicons.d.ts +1631 -625
  59. package/dist/lexicons.d.ts.map +1 -1
  60. package/dist/lexicons.mjs +932 -397
  61. package/dist/lexicons.mjs.map +1 -1
  62. package/dist/types/app/certified/actor/organization.d.ts +32 -0
  63. package/dist/types/app/certified/actor/organization.d.ts.map +1 -0
  64. package/dist/types/app/certified/actor/profile.d.ts +30 -0
  65. package/dist/types/app/certified/actor/profile.d.ts.map +1 -0
  66. package/dist/types/app/certified/badge/award.d.ts +2 -0
  67. package/dist/types/app/certified/badge/award.d.ts.map +1 -1
  68. package/dist/types/app/certified/badge/response.d.ts +1 -1
  69. package/dist/types/app/certified/badge/response.d.ts.map +1 -1
  70. package/dist/types/app/certified/defs.d.ts +11 -1
  71. package/dist/types/app/certified/defs.d.ts.map +1 -1
  72. package/dist/types/app/certified/location.d.ts +13 -5
  73. package/dist/types/app/certified/location.d.ts.map +1 -1
  74. package/dist/types/org/hyperboards/board.d.ts +75 -0
  75. package/dist/types/org/hyperboards/board.d.ts.map +1 -0
  76. package/dist/types/org/hyperboards/displayProfile.d.ts +31 -0
  77. package/dist/types/org/hyperboards/displayProfile.d.ts.map +1 -0
  78. package/dist/types/org/hypercerts/claim/activity.d.ts +30 -11
  79. package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
  80. package/dist/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
  81. package/dist/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
  82. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
  83. package/dist/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
  84. package/dist/types/org/hypercerts/claim/rights.d.ts +3 -3
  85. package/dist/types/org/hypercerts/claim/rights.d.ts.map +1 -1
  86. package/dist/types/org/hypercerts/{claim/collection.d.ts → collection.d.ts} +11 -10
  87. package/dist/types/org/hypercerts/collection.d.ts.map +1 -0
  88. package/dist/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
  89. package/dist/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
  90. package/dist/types/org/hypercerts/context/attachment.d.ts +35 -0
  91. package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -0
  92. package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts/context}/evaluation.d.ts +15 -15
  93. package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
  94. package/dist/types/org/hypercerts/context/measurement.d.ts +43 -0
  95. package/dist/types/org/hypercerts/context/measurement.d.ts.map +1 -0
  96. package/dist/types/org/hypercerts/defs.d.ts +8 -44
  97. package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
  98. package/dist/types/org/hypercerts/funding/receipt.d.ts +1 -1
  99. package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
  100. package/dist/types/org/hypercerts/workscope/cel.d.ts +20 -0
  101. package/dist/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
  102. package/dist/types/org/hypercerts/workscope/tag.d.ts +36 -0
  103. package/dist/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
  104. package/lexicons/app/certified/actor/organization.json +70 -0
  105. package/lexicons/app/certified/actor/profile.json +61 -0
  106. package/lexicons/app/certified/badge/award.json +8 -1
  107. package/lexicons/app/certified/badge/definition.json +8 -3
  108. package/lexicons/app/certified/badge/response.json +3 -2
  109. package/lexicons/app/certified/defs.json +11 -3
  110. package/lexicons/app/certified/location.json +29 -6
  111. package/lexicons/org/hyperboards/board.json +152 -0
  112. package/lexicons/org/hyperboards/displayProfile.json +64 -0
  113. package/lexicons/org/hypercerts/claim/activity.json +57 -39
  114. package/lexicons/org/hypercerts/claim/{contributionDetails.json → contribution.json} +4 -4
  115. package/lexicons/org/hypercerts/claim/contributorInformation.json +3 -2
  116. package/lexicons/org/hypercerts/claim/rights.json +5 -3
  117. package/lexicons/org/hypercerts/{claim/collection.json → collection.json} +15 -7
  118. package/lexicons/org/hypercerts/context/acknowledgement.json +42 -0
  119. package/lexicons/org/hypercerts/context/attachment.json +77 -0
  120. package/lexicons/org/hypercerts/{claim → context}/evaluation.json +22 -22
  121. package/lexicons/org/hypercerts/context/measurement.json +107 -0
  122. package/lexicons/org/hypercerts/defs.json +14 -89
  123. package/lexicons/org/hypercerts/funding/receipt.json +12 -6
  124. package/lexicons/org/hypercerts/workscope/cel.json +39 -0
  125. package/lexicons/org/hypercerts/workscope/tag.json +87 -0
  126. package/package.json +2 -2
  127. package/dist/generated/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  128. package/dist/generated/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  129. package/dist/generated/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  130. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts +0 -29
  131. package/dist/generated/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  132. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts +0 -30
  133. package/dist/generated/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  134. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  135. package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  136. package/dist/types/org/hypercerts/claim/collection.d.ts.map +0 -1
  137. package/dist/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
  138. package/dist/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
  139. package/dist/types/org/hypercerts/claim/evidence.d.ts +0 -29
  140. package/dist/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
  141. package/dist/types/org/hypercerts/claim/measurement.d.ts +0 -30
  142. package/dist/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
  143. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
  144. package/dist/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
  145. package/lexicons/org/hypercerts/claim/evidence.json +0 -57
  146. package/lexicons/org/hypercerts/claim/measurement.json +0 -70
  147. package/lexicons/org/hypercerts/helper/workScopeTag.json +0 -65
@@ -0,0 +1,64 @@
1
+ {
2
+ "lexicon": 1,
3
+ "id": "org.hyperboards.displayProfile",
4
+ "defs": {
5
+ "main": {
6
+ "type": "record",
7
+ "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.",
8
+ "key": "literal:self",
9
+ "record": {
10
+ "type": "object",
11
+ "required": ["createdAt"],
12
+ "properties": {
13
+ "displayName": {
14
+ "type": "string",
15
+ "description": "Display name override for this user on hyperboards.",
16
+ "maxLength": 640,
17
+ "maxGraphemes": 64
18
+ },
19
+ "image": {
20
+ "type": "union",
21
+ "refs": [
22
+ "org.hypercerts.defs#uri",
23
+ "org.hypercerts.defs#smallImage"
24
+ ],
25
+ "description": "Avatar or face image override for this user on hyperboards, as a URI or image blob."
26
+ },
27
+ "video": {
28
+ "type": "union",
29
+ "refs": [
30
+ "org.hypercerts.defs#uri",
31
+ "org.hypercerts.defs#smallVideo"
32
+ ],
33
+ "description": "Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob."
34
+ },
35
+ "hoverImage": {
36
+ "type": "union",
37
+ "refs": [
38
+ "org.hypercerts.defs#uri",
39
+ "org.hypercerts.defs#smallImage"
40
+ ],
41
+ "description": "Default hover image for this user across boards, as a URI or image blob."
42
+ },
43
+ "hoverIframeUrl": {
44
+ "type": "string",
45
+ "format": "uri",
46
+ "description": "Default hover iframe URL for this user across boards.",
47
+ "maxLength": 2048
48
+ },
49
+ "url": {
50
+ "type": "string",
51
+ "format": "uri",
52
+ "description": "Default click-through link URL for this user across boards.",
53
+ "maxLength": 2048
54
+ },
55
+ "createdAt": {
56
+ "type": "string",
57
+ "format": "datetime",
58
+ "description": "Client-declared timestamp when this record was originally created."
59
+ }
60
+ }
61
+ }
62
+ }
63
+ }
64
+ }
@@ -12,7 +12,7 @@
12
12
  "properties": {
13
13
  "title": {
14
14
  "type": "string",
15
- "description": "Title of the hypercert.",
15
+ "description": "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
16
16
  "maxLength": 256
17
17
  },
18
18
  "shortDescription": {
@@ -30,18 +30,9 @@
30
30
  }
31
31
  },
32
32
  "description": {
33
- "type": "string",
34
- "description": "Optional longer description of this activity claim, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`.",
35
- "maxLength": 30000,
36
- "maxGraphemes": 3000
37
- },
38
- "descriptionFacets": {
39
- "type": "array",
40
- "description": "Rich text annotations for `description` (mentions, URLs, hashtags, etc).",
41
- "items": {
42
- "type": "ref",
43
- "ref": "app.bsky.richtext.facet"
44
- }
33
+ "type": "ref",
34
+ "ref": "pub.leaflet.pages.linearDocument#main",
35
+ "description": "Rich-text description, represented as a Leaflet linear document."
45
36
  },
46
37
  "image": {
47
38
  "type": "union",
@@ -51,15 +42,19 @@
51
42
  ],
52
43
  "description": "The hypercert visual representation as a URI or image blob."
53
44
  },
45
+ "contributors": {
46
+ "type": "array",
47
+ "description": "An array of contributor objects, each containing contributor information, weight, and contribution details.",
48
+ "maxLength": 1000,
49
+ "items": {
50
+ "type": "ref",
51
+ "ref": "#contributor"
52
+ }
53
+ },
54
54
  "workScope": {
55
55
  "type": "union",
56
- "refs": [
57
- "org.hypercerts.defs#workScopeAll",
58
- "org.hypercerts.defs#workScopeAny",
59
- "org.hypercerts.defs#workScopeNot",
60
- "org.hypercerts.defs#workScopeAtom"
61
- ],
62
- "description": "Work scope logic expression using boolean operators (all/any/not) and atomic scope references."
56
+ "refs": ["org.hypercerts.workscope.cel", "#workScopeString"],
57
+ "description": "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes."
63
58
  },
64
59
  "startDate": {
65
60
  "type": "string",
@@ -71,12 +66,13 @@
71
66
  "format": "datetime",
72
67
  "description": "When the work ended"
73
68
  },
74
- "contributors": {
69
+ "locations": {
75
70
  "type": "array",
76
- "description": "An array of contributor objects, each containing contributor information, weight, and contribution details.",
71
+ "description": "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
72
+ "maxLength": 1000,
77
73
  "items": {
78
74
  "type": "ref",
79
- "ref": "#contributor"
75
+ "ref": "com.atproto.repo.strongRef"
80
76
  }
81
77
  },
82
78
  "rights": {
@@ -84,14 +80,6 @@
84
80
  "ref": "com.atproto.repo.strongRef",
85
81
  "description": "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights."
86
82
  },
87
- "locations": {
88
- "type": "array",
89
- "description": "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
90
- "items": {
91
- "type": "ref",
92
- "ref": "com.atproto.repo.strongRef"
93
- }
94
- },
95
83
  "createdAt": {
96
84
  "type": "string",
97
85
  "format": "datetime",
@@ -107,28 +95,58 @@
107
95
  "contributorIdentity": {
108
96
  "type": "union",
109
97
  "refs": ["#contributorIdentity", "com.atproto.repo.strongRef"],
110
- "description": "Contributor identity as a string (DID or identifier) via org.hypercerts.claim.activity#contributorIdentity, or a strong reference to a contributor information record."
98
+ "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."
111
99
  },
112
100
  "contributionWeight": {
113
101
  "type": "string",
114
- "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."
102
+ "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.",
103
+ "maxLength": 100
115
104
  },
116
105
  "contributionDetails": {
117
106
  "type": "union",
118
107
  "refs": ["#contributorRole", "com.atproto.repo.strongRef"],
119
- "description": "Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record."
108
+ "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."
120
109
  }
121
110
  }
122
111
  },
123
112
  "contributorIdentity": {
124
- "type": "string",
125
- "description": "Contributor information as a string (DID or identifier)."
113
+ "type": "object",
114
+ "description": "Contributor information as a string (DID or identifier).",
115
+ "required": ["identity"],
116
+ "properties": {
117
+ "identity": {
118
+ "type": "string",
119
+ "description": "The contributor identity string (DID or identifier).",
120
+ "maxLength": 1000,
121
+ "maxGraphemes": 100
122
+ }
123
+ }
126
124
  },
127
125
  "contributorRole": {
128
- "type": "string",
126
+ "type": "object",
129
127
  "description": "Contribution details as a string.",
130
- "maxLength": 10000,
131
- "maxGraphemes": 1000
128
+ "required": ["role"],
129
+ "properties": {
130
+ "role": {
131
+ "type": "string",
132
+ "description": "The contribution role or details.",
133
+ "maxLength": 1000,
134
+ "maxGraphemes": 100
135
+ }
136
+ }
137
+ },
138
+ "workScopeString": {
139
+ "type": "object",
140
+ "description": "A free-form string describing the work scope for simple or legacy scopes.",
141
+ "required": ["scope"],
142
+ "properties": {
143
+ "scope": {
144
+ "type": "string",
145
+ "description": "The work scope description string.",
146
+ "maxLength": 1000,
147
+ "maxGraphemes": 100
148
+ }
149
+ }
132
150
  }
133
151
  }
134
152
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "lexicon": 1,
3
- "id": "org.hypercerts.claim.contributionDetails",
3
+ "id": "org.hypercerts.claim.contribution",
4
4
  "defs": {
5
5
  "main": {
6
6
  "type": "record",
@@ -17,19 +17,19 @@
17
17
  },
18
18
  "contributionDescription": {
19
19
  "type": "string",
20
- "description": "What the contribution concretely was.",
20
+ "description": "Description of what the contribution concretely involved.",
21
21
  "maxLength": 10000,
22
22
  "maxGraphemes": 1000
23
23
  },
24
24
  "startDate": {
25
25
  "type": "string",
26
26
  "format": "datetime",
27
- "description": "When this contribution started. This should be a subset of the hypercert timeframe."
27
+ "description": "When this contribution started. Should fall within the parent hypercert's timeframe."
28
28
  },
29
29
  "endDate": {
30
30
  "type": "string",
31
31
  "format": "datetime",
32
- "description": "When this contribution finished. This should be a subset of the hypercert timeframe."
32
+ "description": "When this contribution finished. Should fall within the parent hypercert's timeframe."
33
33
  },
34
34
  "createdAt": {
35
35
  "type": "string",
@@ -12,11 +12,12 @@
12
12
  "properties": {
13
13
  "identifier": {
14
14
  "type": "string",
15
- "description": "DID or a URI to a social profile of the contributor."
15
+ "description": "DID (did:plc:...) or URI to a social profile of the contributor.",
16
+ "maxLength": 2048
16
17
  },
17
18
  "displayName": {
18
19
  "type": "string",
19
- "description": "Display name of the contributor.",
20
+ "description": "Human-readable name for the contributor as it should appear in UI.",
20
21
  "maxLength": 100
21
22
  },
22
23
  "image": {
@@ -17,17 +17,19 @@
17
17
  "properties": {
18
18
  "rightsName": {
19
19
  "type": "string",
20
- "description": "Full name of the rights",
20
+ "description": "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
21
21
  "maxLength": 100
22
22
  },
23
23
  "rightsType": {
24
24
  "type": "string",
25
- "description": "Short rights identifier for easier search",
25
+ "description": "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search",
26
26
  "maxLength": 10
27
27
  },
28
28
  "rightsDescription": {
29
29
  "type": "string",
30
- "description": "Description of the rights of this hypercert"
30
+ "description": "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
31
+ "maxLength": 10000,
32
+ "maxGraphemes": 1000
31
33
  },
32
34
  "attachment": {
33
35
  "type": "union",
@@ -1,22 +1,23 @@
1
1
  {
2
2
  "lexicon": 1,
3
- "id": "org.hypercerts.claim.collection",
3
+ "id": "org.hypercerts.collection",
4
4
  "defs": {
5
5
  "main": {
6
6
  "type": "record",
7
- "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.",
7
+ "description": "A collection/group of items (activities and/or other collections). Collections support recursive nesting.",
8
8
  "key": "tid",
9
9
  "record": {
10
10
  "type": "object",
11
- "required": ["title", "items", "createdAt"],
11
+ "required": ["title", "createdAt"],
12
12
  "properties": {
13
13
  "type": {
14
14
  "type": "string",
15
- "description": "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection."
15
+ "description": "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
16
+ "maxLength": 64
16
17
  },
17
18
  "title": {
18
19
  "type": "string",
19
- "description": "The title of this collection",
20
+ "description": "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
20
21
  "maxLength": 800,
21
22
  "maxGraphemes": 80
22
23
  },
@@ -50,11 +51,17 @@
50
51
  "items": {
51
52
  "type": "array",
52
53
  "description": "Array of items in this collection with optional weights.",
54
+ "maxLength": 1000,
53
55
  "items": {
54
56
  "type": "ref",
55
57
  "ref": "#item"
56
58
  }
57
59
  },
60
+ "location": {
61
+ "type": "ref",
62
+ "ref": "com.atproto.repo.strongRef",
63
+ "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."
64
+ },
58
65
  "createdAt": {
59
66
  "type": "string",
60
67
  "format": "datetime",
@@ -70,11 +77,12 @@
70
77
  "itemIdentifier": {
71
78
  "type": "ref",
72
79
  "ref": "com.atproto.repo.strongRef",
73
- "description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection)."
80
+ "description": "Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection)."
74
81
  },
75
82
  "itemWeight": {
76
83
  "type": "string",
77
- "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."
84
+ "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.",
85
+ "maxLength": 100
78
86
  }
79
87
  }
80
88
  }
@@ -0,0 +1,42 @@
1
+ {
2
+ "lexicon": 1,
3
+ "id": "org.hypercerts.context.acknowledgement",
4
+ "defs": {
5
+ "main": {
6
+ "type": "record",
7
+ "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.",
8
+ "key": "tid",
9
+ "record": {
10
+ "type": "object",
11
+ "required": ["subject", "acknowledged", "createdAt"],
12
+ "properties": {
13
+ "subject": {
14
+ "type": "ref",
15
+ "ref": "com.atproto.repo.strongRef",
16
+ "description": "The record being acknowledged (e.g. an activity, a contributor information record, an evaluation)."
17
+ },
18
+ "context": {
19
+ "type": "union",
20
+ "refs": ["org.hypercerts.defs#uri", "com.atproto.repo.strongRef"],
21
+ "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."
22
+ },
23
+ "acknowledged": {
24
+ "type": "boolean",
25
+ "description": "Whether the relationship is acknowledged (true) or rejected (false)."
26
+ },
27
+ "comment": {
28
+ "type": "string",
29
+ "description": "Optional plain-text comment providing additional context or reasoning.",
30
+ "maxLength": 10000,
31
+ "maxGraphemes": 1000
32
+ },
33
+ "createdAt": {
34
+ "type": "string",
35
+ "format": "datetime",
36
+ "description": "Client-declared timestamp when this record was originally created."
37
+ }
38
+ }
39
+ }
40
+ }
41
+ }
42
+ }
@@ -0,0 +1,77 @@
1
+ {
2
+ "lexicon": 1,
3
+ "id": "org.hypercerts.context.attachment",
4
+ "defs": {
5
+ "main": {
6
+ "type": "record",
7
+ "description": "An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).",
8
+ "key": "tid",
9
+ "record": {
10
+ "type": "object",
11
+ "required": ["title", "createdAt"],
12
+ "properties": {
13
+ "subjects": {
14
+ "type": "array",
15
+ "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.",
16
+ "items": {
17
+ "type": "ref",
18
+ "ref": "com.atproto.repo.strongRef"
19
+ },
20
+ "maxLength": 100
21
+ },
22
+ "contentType": {
23
+ "type": "string",
24
+ "maxLength": 64,
25
+ "description": "The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc."
26
+ },
27
+ "content": {
28
+ "type": "array",
29
+ "description": "The files, documents, or external references included in this attachment record.",
30
+ "items": {
31
+ "type": "union",
32
+ "refs": [
33
+ "org.hypercerts.defs#uri",
34
+ "org.hypercerts.defs#smallBlob"
35
+ ]
36
+ },
37
+ "maxLength": 100
38
+ },
39
+ "title": {
40
+ "type": "string",
41
+ "maxLength": 256,
42
+ "description": "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')"
43
+ },
44
+ "shortDescription": {
45
+ "type": "string",
46
+ "description": "Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
47
+ "maxLength": 3000,
48
+ "maxGraphemes": 300
49
+ },
50
+ "shortDescriptionFacets": {
51
+ "type": "array",
52
+ "description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
53
+ "items": {
54
+ "type": "ref",
55
+ "ref": "app.bsky.richtext.facet"
56
+ }
57
+ },
58
+ "description": {
59
+ "type": "ref",
60
+ "ref": "pub.leaflet.pages.linearDocument#main",
61
+ "description": "Rich-text description, represented as a Leaflet linear document."
62
+ },
63
+ "location": {
64
+ "type": "ref",
65
+ "ref": "com.atproto.repo.strongRef",
66
+ "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."
67
+ },
68
+ "createdAt": {
69
+ "type": "string",
70
+ "format": "datetime",
71
+ "description": "Client-declared timestamp when this record was originally created."
72
+ }
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
@@ -1,26 +1,7 @@
1
1
  {
2
2
  "lexicon": 1,
3
- "id": "org.hypercerts.claim.evaluation",
3
+ "id": "org.hypercerts.context.evaluation",
4
4
  "defs": {
5
- "score": {
6
- "type": "object",
7
- "description": "Overall score for an evaluation on a numeric scale.",
8
- "required": ["min", "max", "value"],
9
- "properties": {
10
- "min": {
11
- "type": "integer",
12
- "description": "Minimum value of the scale, e.g. 0 or 1."
13
- },
14
- "max": {
15
- "type": "integer",
16
- "description": "Maximum value of the scale, e.g. 5 or 10."
17
- },
18
- "value": {
19
- "type": "integer",
20
- "description": "Score within the inclusive range [min, max]."
21
- }
22
- }
23
- },
24
5
  "main": {
25
6
  "type": "record",
26
7
  "description": "An evaluation of a hypercert record (e.g. an activity and its impact).",
@@ -32,7 +13,7 @@
32
13
  "subject": {
33
14
  "type": "ref",
34
15
  "ref": "com.atproto.repo.strongRef",
35
- "description": "A strong reference to what is being evaluated. (e.g activity, measurement, contribution, etc.)"
16
+ "description": "A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)"
36
17
  },
37
18
  "evaluators": {
38
19
  "type": "array",
@@ -57,7 +38,7 @@
57
38
  },
58
39
  "measurements": {
59
40
  "type": "array",
60
- "description": "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.claim.measurement",
41
+ "description": "Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement",
61
42
  "items": {
62
43
  "type": "ref",
63
44
  "ref": "com.atproto.repo.strongRef"
@@ -87,6 +68,25 @@
87
68
  }
88
69
  }
89
70
  }
71
+ },
72
+ "score": {
73
+ "type": "object",
74
+ "description": "Overall score for an evaluation on a numeric scale.",
75
+ "required": ["min", "max", "value"],
76
+ "properties": {
77
+ "min": {
78
+ "type": "integer",
79
+ "description": "Minimum value of the scale, e.g. 0 or 1."
80
+ },
81
+ "max": {
82
+ "type": "integer",
83
+ "description": "Maximum value of the scale, e.g. 5 or 10."
84
+ },
85
+ "value": {
86
+ "type": "integer",
87
+ "description": "Score within the inclusive range [min, max]."
88
+ }
89
+ }
90
90
  }
91
91
  }
92
92
  }
@@ -0,0 +1,107 @@
1
+ {
2
+ "lexicon": 1,
3
+ "id": "org.hypercerts.context.measurement",
4
+ "defs": {
5
+ "main": {
6
+ "type": "record",
7
+ "description": "Measurement data related to one or more records (e.g. activities, projects, etc.).",
8
+ "key": "tid",
9
+ "record": {
10
+ "type": "object",
11
+ "required": ["metric", "unit", "value", "createdAt"],
12
+ "properties": {
13
+ "subjects": {
14
+ "type": "array",
15
+ "description": "Strong references to the records this measurement refers to (e.g. activities, projects, or claims).",
16
+ "items": {
17
+ "type": "ref",
18
+ "ref": "com.atproto.repo.strongRef"
19
+ },
20
+ "maxLength": 100
21
+ },
22
+ "metric": {
23
+ "type": "string",
24
+ "description": "The metric being measured, e.g. forest area restored, number of users, etc.",
25
+ "maxLength": 500
26
+ },
27
+ "unit": {
28
+ "type": "string",
29
+ "description": "The unit of the measured value (e.g. kg CO₂e, hectares, %, index score).",
30
+ "maxLength": 50
31
+ },
32
+ "value": {
33
+ "type": "string",
34
+ "description": "The measured value as a numeric string (e.g. '1234.56')",
35
+ "maxLength": 500
36
+ },
37
+ "startDate": {
38
+ "type": "string",
39
+ "format": "datetime",
40
+ "description": "The start date and time when the measurement began."
41
+ },
42
+ "endDate": {
43
+ "type": "string",
44
+ "format": "datetime",
45
+ "description": "The end date and time when the measurement ended. For one-time measurements, this should equal the start date."
46
+ },
47
+ "locations": {
48
+ "type": "array",
49
+ "description": "Optional geographic references related to where the measurement was taken. Each referenced record must conform with the app.certified.location lexicon.",
50
+ "items": {
51
+ "type": "ref",
52
+ "ref": "com.atproto.repo.strongRef"
53
+ },
54
+ "maxLength": 100
55
+ },
56
+ "methodType": {
57
+ "type": "string",
58
+ "description": "Short identifier for the measurement methodology",
59
+ "maxLength": 30
60
+ },
61
+ "methodURI": {
62
+ "type": "string",
63
+ "format": "uri",
64
+ "description": "URI to methodology documentation, standard protocol, or measurement procedure"
65
+ },
66
+ "evidenceURI": {
67
+ "type": "array",
68
+ "description": "URIs to related evidence or underlying data (e.g. org.hypercerts.claim.evidence records or raw datasets)",
69
+ "items": {
70
+ "type": "string",
71
+ "format": "uri"
72
+ },
73
+ "maxLength": 50
74
+ },
75
+ "measurers": {
76
+ "type": "array",
77
+ "description": "DIDs of the entities that performed this measurement",
78
+ "items": {
79
+ "type": "ref",
80
+ "ref": "app.certified.defs#did"
81
+ },
82
+ "maxLength": 100
83
+ },
84
+ "comment": {
85
+ "type": "string",
86
+ "description": "Short comment of this measurement, suitable for previews and list views. Rich text annotations may be provided via `commentFacets`.",
87
+ "maxLength": 3000,
88
+ "maxGraphemes": 300
89
+ },
90
+ "commentFacets": {
91
+ "type": "array",
92
+ "description": "Rich text annotations for `comment` (mentions, URLs, hashtags, etc).",
93
+ "items": {
94
+ "type": "ref",
95
+ "ref": "app.bsky.richtext.facet"
96
+ }
97
+ },
98
+ "createdAt": {
99
+ "type": "string",
100
+ "format": "datetime",
101
+ "description": "Client-declared timestamp when this record was originally created"
102
+ }
103
+ }
104
+ }
105
+ }
106
+ }
107
+ }