@hypercerts-org/lexicon 0.10.0-beta.14 → 0.10.0-beta.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/README.md +117 -12
- package/SCHEMAS.md +300 -158
- package/dist/exports.d.ts +604 -171
- package/dist/exports.d.ts.map +1 -1
- package/dist/generated/exports.d.ts +604 -171
- package/dist/generated/exports.d.ts.map +1 -1
- package/dist/generated/lexicons.d.ts +1256 -440
- package/dist/generated/lexicons.d.ts.map +1 -1
- package/dist/generated/types/app/certified/actor/organization.d.ts +32 -0
- package/dist/generated/types/app/certified/actor/organization.d.ts.map +1 -0
- package/dist/generated/types/app/certified/actor/profile.d.ts +4 -1
- package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -1
- package/dist/generated/types/app/certified/badge/award.d.ts +2 -0
- package/dist/generated/types/app/certified/badge/award.d.ts.map +1 -1
- package/dist/generated/types/app/certified/badge/response.d.ts +1 -1
- package/dist/generated/types/app/certified/badge/response.d.ts.map +1 -1
- package/dist/generated/types/app/certified/location.d.ts +4 -4
- package/dist/generated/types/app/certified/location.d.ts.map +1 -1
- package/dist/generated/types/org/hyperboards/board.d.ts +75 -0
- package/dist/generated/types/org/hyperboards/board.d.ts.map +1 -0
- package/dist/generated/types/org/hyperboards/displayProfile.d.ts +31 -0
- package/dist/generated/types/org/hyperboards/displayProfile.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/claim/activity.d.ts +8 -9
- package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
- package/dist/generated/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
- package/dist/generated/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/claim/rights.d.ts +3 -3
- package/dist/generated/types/org/hypercerts/claim/rights.d.ts.map +1 -1
- package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts}/collection.d.ts +10 -10
- package/dist/generated/types/org/hypercerts/collection.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
- package/dist/generated/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/{claim → context}/attachment.d.ts +6 -8
- package/dist/generated/types/org/hypercerts/context/attachment.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/{claim → context}/evaluation.d.ts +15 -15
- package/dist/generated/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
- package/dist/{types/org/hypercerts/claim → generated/types/org/hypercerts/context}/measurement.d.ts +7 -6
- package/dist/generated/types/org/hypercerts/context/measurement.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/defs.d.ts +8 -0
- package/dist/generated/types/org/hypercerts/defs.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/funding/receipt.d.ts +1 -1
- package/dist/generated/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/workscope/cel.d.ts +20 -0
- package/dist/generated/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
- package/dist/generated/types/org/hypercerts/workscope/tag.d.ts +36 -0
- package/dist/generated/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
- package/dist/index.cjs +1931 -805
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +1883 -777
- package/dist/index.mjs.map +1 -1
- package/dist/lexicons.cjs +689 -240
- package/dist/lexicons.cjs.map +1 -1
- package/dist/lexicons.d.ts +1256 -440
- package/dist/lexicons.d.ts.map +1 -1
- package/dist/lexicons.mjs +689 -240
- package/dist/lexicons.mjs.map +1 -1
- package/dist/types/app/certified/actor/organization.d.ts +32 -0
- package/dist/types/app/certified/actor/organization.d.ts.map +1 -0
- package/dist/types/app/certified/actor/profile.d.ts +4 -1
- package/dist/types/app/certified/actor/profile.d.ts.map +1 -1
- package/dist/types/app/certified/badge/award.d.ts +2 -0
- package/dist/types/app/certified/badge/award.d.ts.map +1 -1
- package/dist/types/app/certified/badge/response.d.ts +1 -1
- package/dist/types/app/certified/badge/response.d.ts.map +1 -1
- package/dist/types/app/certified/location.d.ts +4 -4
- package/dist/types/app/certified/location.d.ts.map +1 -1
- package/dist/types/org/hyperboards/board.d.ts +75 -0
- package/dist/types/org/hyperboards/board.d.ts.map +1 -0
- package/dist/types/org/hyperboards/displayProfile.d.ts +31 -0
- package/dist/types/org/hyperboards/displayProfile.d.ts.map +1 -0
- package/dist/types/org/hypercerts/claim/activity.d.ts +8 -9
- package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
- package/dist/types/org/hypercerts/claim/{contributionDetails.d.ts → contribution.d.ts} +6 -6
- package/dist/types/org/hypercerts/claim/contribution.d.ts.map +1 -0
- package/dist/types/org/hypercerts/claim/contributorInformation.d.ts +2 -2
- package/dist/types/org/hypercerts/claim/contributorInformation.d.ts.map +1 -1
- package/dist/types/org/hypercerts/claim/rights.d.ts +3 -3
- package/dist/types/org/hypercerts/claim/rights.d.ts.map +1 -1
- package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts}/collection.d.ts +10 -10
- package/dist/types/org/hypercerts/collection.d.ts.map +1 -0
- package/dist/types/org/hypercerts/context/acknowledgement.d.ts +25 -0
- package/dist/types/org/hypercerts/context/acknowledgement.d.ts.map +1 -0
- package/dist/types/org/hypercerts/{claim → context}/attachment.d.ts +6 -8
- package/dist/types/org/hypercerts/context/attachment.d.ts.map +1 -0
- package/dist/types/org/hypercerts/{claim → context}/evaluation.d.ts +15 -15
- package/dist/types/org/hypercerts/context/evaluation.d.ts.map +1 -0
- package/dist/{generated/types/org/hypercerts/claim → types/org/hypercerts/context}/measurement.d.ts +7 -6
- package/dist/types/org/hypercerts/context/measurement.d.ts.map +1 -0
- package/dist/types/org/hypercerts/defs.d.ts +8 -0
- package/dist/types/org/hypercerts/defs.d.ts.map +1 -1
- package/dist/types/org/hypercerts/funding/receipt.d.ts +1 -1
- package/dist/types/org/hypercerts/funding/receipt.d.ts.map +1 -1
- package/dist/types/org/hypercerts/workscope/cel.d.ts +20 -0
- package/dist/types/org/hypercerts/workscope/cel.d.ts.map +1 -0
- package/dist/types/org/hypercerts/workscope/tag.d.ts +36 -0
- package/dist/types/org/hypercerts/workscope/tag.d.ts.map +1 -0
- package/lexicons/app/certified/actor/organization.json +70 -0
- package/lexicons/app/certified/actor/profile.json +13 -3
- package/lexicons/app/certified/badge/award.json +8 -1
- package/lexicons/app/certified/badge/definition.json +8 -3
- package/lexicons/app/certified/badge/response.json +3 -2
- package/lexicons/app/certified/location.json +13 -4
- package/lexicons/org/hyperboards/board.json +152 -0
- package/lexicons/org/hyperboards/displayProfile.json +64 -0
- package/lexicons/org/hypercerts/claim/activity.json +23 -29
- package/lexicons/org/hypercerts/claim/{contributionDetails.json → contribution.json} +4 -4
- package/lexicons/org/hypercerts/claim/contributorInformation.json +3 -2
- package/lexicons/org/hypercerts/claim/rights.json +5 -3
- package/lexicons/org/hypercerts/{claim/collection.json → collection.json} +9 -6
- package/lexicons/org/hypercerts/context/acknowledgement.json +42 -0
- package/lexicons/org/hypercerts/{claim → context}/attachment.json +6 -15
- package/lexicons/org/hypercerts/{claim → context}/evaluation.json +22 -22
- package/lexicons/org/hypercerts/{claim → context}/measurement.json +13 -9
- package/lexicons/org/hypercerts/defs.json +14 -1
- package/lexicons/org/hypercerts/funding/receipt.json +12 -6
- package/lexicons/org/hypercerts/workscope/cel.json +39 -0
- package/lexicons/org/hypercerts/workscope/tag.json +87 -0
- package/package.json +1 -1
- package/dist/generated/types/org/hypercerts/claim/attachment.d.ts.map +0 -1
- package/dist/generated/types/org/hypercerts/claim/collection.d.ts.map +0 -1
- package/dist/generated/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
- package/dist/generated/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
- package/dist/generated/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
- package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
- package/dist/generated/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/attachment.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/collection.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/contributionDetails.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/evaluation.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/measurement.d.ts.map +0 -1
- package/dist/types/org/hypercerts/helper/workScopeTag.d.ts +0 -31
- package/dist/types/org/hypercerts/helper/workScopeTag.d.ts.map +0 -1
- package/lexicons/org/hypercerts/helper/workScopeTag.json +0 -65
package/dist/lexicons.cjs
CHANGED
|
@@ -30,19 +30,91 @@ function maybe$typed(v, id, hash) {
|
|
|
30
30
|
* GENERATED CODE - DO NOT MODIFY
|
|
31
31
|
*/
|
|
32
32
|
const schemaDict = {
|
|
33
|
+
AppCertifiedActorOrganization: {
|
|
34
|
+
lexicon: 1,
|
|
35
|
+
id: 'app.certified.actor.organization',
|
|
36
|
+
defs: {
|
|
37
|
+
main: {
|
|
38
|
+
type: 'record',
|
|
39
|
+
description: 'Extended metadata for an organization actor. Complements the base actor profile with organization-specific fields like legal structure and reference links.',
|
|
40
|
+
key: 'literal:self',
|
|
41
|
+
record: {
|
|
42
|
+
type: 'object',
|
|
43
|
+
required: ['createdAt'],
|
|
44
|
+
properties: {
|
|
45
|
+
organizationType: {
|
|
46
|
+
type: 'array',
|
|
47
|
+
description: "Legal or operational structures of the organization (e.g. 'nonprofit', 'ngo', 'government', 'social-enterprise', 'cooperative').",
|
|
48
|
+
items: {
|
|
49
|
+
type: 'string',
|
|
50
|
+
maxLength: 128,
|
|
51
|
+
maxGraphemes: 100,
|
|
52
|
+
},
|
|
53
|
+
maxLength: 10,
|
|
54
|
+
},
|
|
55
|
+
urls: {
|
|
56
|
+
type: 'array',
|
|
57
|
+
description: 'Additional reference URLs (social media profiles, contact pages, donation links, etc.) with a display label for each URL.',
|
|
58
|
+
items: {
|
|
59
|
+
type: 'ref',
|
|
60
|
+
ref: 'lex:app.certified.actor.organization#urlItem',
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
location: {
|
|
64
|
+
type: 'ref',
|
|
65
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
66
|
+
description: 'A strong reference to the location where the organization is based. The record referenced must conform with the lexicon app.certified.location.',
|
|
67
|
+
},
|
|
68
|
+
foundedDate: {
|
|
69
|
+
type: 'string',
|
|
70
|
+
format: 'datetime',
|
|
71
|
+
description: "When the organization was established. Stored as datetime per ATProto conventions (no date-only format exists). Clients should use midnight UTC (e.g., '2005-01-01T00:00:00.000Z'); consumers should treat only the date portion as canonical.",
|
|
72
|
+
},
|
|
73
|
+
createdAt: {
|
|
74
|
+
type: 'string',
|
|
75
|
+
format: 'datetime',
|
|
76
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
urlItem: {
|
|
82
|
+
type: 'object',
|
|
83
|
+
description: 'A labeled URL reference.',
|
|
84
|
+
required: ['url'],
|
|
85
|
+
properties: {
|
|
86
|
+
url: {
|
|
87
|
+
type: 'string',
|
|
88
|
+
format: 'uri',
|
|
89
|
+
description: 'The URL.',
|
|
90
|
+
maxLength: 10000,
|
|
91
|
+
maxGraphemes: 2048,
|
|
92
|
+
},
|
|
93
|
+
label: {
|
|
94
|
+
type: 'string',
|
|
95
|
+
description: "Optional human-readable label for this URL (e.g. 'Support page', 'Donation page').",
|
|
96
|
+
maxLength: 640,
|
|
97
|
+
maxGraphemes: 64,
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
},
|
|
102
|
+
},
|
|
33
103
|
AppCertifiedActorProfile: {
|
|
34
104
|
lexicon: 1,
|
|
35
105
|
id: 'app.certified.actor.profile',
|
|
36
106
|
defs: {
|
|
37
107
|
main: {
|
|
38
108
|
type: 'record',
|
|
39
|
-
description: 'A declaration of a
|
|
109
|
+
description: 'A declaration of a Certified account profile.',
|
|
40
110
|
key: 'literal:self',
|
|
41
111
|
record: {
|
|
42
112
|
type: 'object',
|
|
113
|
+
required: ['createdAt'],
|
|
43
114
|
properties: {
|
|
44
115
|
displayName: {
|
|
45
116
|
type: 'string',
|
|
117
|
+
description: 'Display name for the account',
|
|
46
118
|
maxGraphemes: 64,
|
|
47
119
|
maxLength: 640,
|
|
48
120
|
},
|
|
@@ -61,6 +133,7 @@ const schemaDict = {
|
|
|
61
133
|
website: {
|
|
62
134
|
type: 'string',
|
|
63
135
|
format: 'uri',
|
|
136
|
+
description: 'Account website URL',
|
|
64
137
|
},
|
|
65
138
|
avatar: {
|
|
66
139
|
type: 'union',
|
|
@@ -81,6 +154,7 @@ const schemaDict = {
|
|
|
81
154
|
createdAt: {
|
|
82
155
|
type: 'string',
|
|
83
156
|
format: 'datetime',
|
|
157
|
+
description: 'Client-declared timestamp when this record was originally created',
|
|
84
158
|
},
|
|
85
159
|
},
|
|
86
160
|
},
|
|
@@ -115,6 +189,13 @@ const schemaDict = {
|
|
|
115
189
|
note: {
|
|
116
190
|
type: 'string',
|
|
117
191
|
description: 'Optional statement explaining the reason for this badge award.',
|
|
192
|
+
maxLength: 500,
|
|
193
|
+
},
|
|
194
|
+
url: {
|
|
195
|
+
type: 'string',
|
|
196
|
+
format: 'uri',
|
|
197
|
+
description: 'Optional URL the badge award links to.',
|
|
198
|
+
maxLength: 2048,
|
|
118
199
|
},
|
|
119
200
|
createdAt: {
|
|
120
201
|
type: 'string',
|
|
@@ -141,10 +222,12 @@ const schemaDict = {
|
|
|
141
222
|
badgeType: {
|
|
142
223
|
type: 'string',
|
|
143
224
|
description: 'Category of the badge (e.g. endorsement, participation, affiliation).',
|
|
225
|
+
maxLength: 100,
|
|
144
226
|
},
|
|
145
227
|
title: {
|
|
146
228
|
type: 'string',
|
|
147
229
|
description: 'Human-readable title of the badge.',
|
|
230
|
+
maxLength: 256,
|
|
148
231
|
},
|
|
149
232
|
icon: {
|
|
150
233
|
type: 'blob',
|
|
@@ -160,10 +243,13 @@ const schemaDict = {
|
|
|
160
243
|
description: {
|
|
161
244
|
type: 'string',
|
|
162
245
|
description: 'Optional short statement describing what the badge represents.',
|
|
246
|
+
maxLength: 5000,
|
|
247
|
+
maxGraphemes: 500,
|
|
163
248
|
},
|
|
164
249
|
allowedIssuers: {
|
|
165
250
|
type: 'array',
|
|
166
251
|
description: 'Optional allowlist of DIDs allowed to issue this badge. If omitted, anyone may issue it.',
|
|
252
|
+
maxLength: 100,
|
|
167
253
|
items: {
|
|
168
254
|
type: 'ref',
|
|
169
255
|
ref: 'lex:app.certified.defs#did',
|
|
@@ -198,12 +284,13 @@ const schemaDict = {
|
|
|
198
284
|
},
|
|
199
285
|
response: {
|
|
200
286
|
type: 'string',
|
|
201
|
-
|
|
287
|
+
knownValues: ['accepted', 'rejected'],
|
|
202
288
|
description: 'The recipient’s response for the badge (accepted or rejected).',
|
|
203
289
|
},
|
|
204
290
|
weight: {
|
|
205
291
|
type: 'string',
|
|
206
292
|
description: 'Optional relative weight for accepted badges, assigned by the recipient.',
|
|
293
|
+
maxLength: 50,
|
|
207
294
|
},
|
|
208
295
|
createdAt: {
|
|
209
296
|
type: 'string',
|
|
@@ -266,8 +353,17 @@ const schemaDict = {
|
|
|
266
353
|
},
|
|
267
354
|
locationType: {
|
|
268
355
|
type: 'string',
|
|
269
|
-
description: 'An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point)',
|
|
270
|
-
knownValues: [
|
|
356
|
+
description: 'An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point). See the Location Protocol spec for the full registry: https://spec.decentralizedgeo.org/specification/location-types/#location-type-registry',
|
|
357
|
+
knownValues: [
|
|
358
|
+
'coordinate-decimal',
|
|
359
|
+
'geojson-point',
|
|
360
|
+
'geojson',
|
|
361
|
+
'h3',
|
|
362
|
+
'geohash',
|
|
363
|
+
'wkt',
|
|
364
|
+
'address',
|
|
365
|
+
'scaledCoordinates',
|
|
366
|
+
],
|
|
271
367
|
maxLength: 20,
|
|
272
368
|
},
|
|
273
369
|
location: {
|
|
@@ -281,13 +377,13 @@ const schemaDict = {
|
|
|
281
377
|
},
|
|
282
378
|
name: {
|
|
283
379
|
type: 'string',
|
|
284
|
-
description:
|
|
380
|
+
description: "Human-readable name for this location (e.g. 'Golden Gate Park', 'San Francisco Bay Area')",
|
|
285
381
|
maxLength: 1000,
|
|
286
382
|
maxGraphemes: 100,
|
|
287
383
|
},
|
|
288
384
|
description: {
|
|
289
385
|
type: 'string',
|
|
290
|
-
description: '
|
|
386
|
+
description: 'Additional context about this location, such as its significance to the work or specific boundaries',
|
|
291
387
|
maxLength: 2000,
|
|
292
388
|
maxGraphemes: 500,
|
|
293
389
|
},
|
|
@@ -335,6 +431,234 @@ const schemaDict = {
|
|
|
335
431
|
},
|
|
336
432
|
},
|
|
337
433
|
},
|
|
434
|
+
OrgHyperboardsBoard: {
|
|
435
|
+
lexicon: 1,
|
|
436
|
+
id: 'org.hyperboards.board',
|
|
437
|
+
defs: {
|
|
438
|
+
main: {
|
|
439
|
+
type: 'record',
|
|
440
|
+
description: "Configuration record for a hyperboard, wrapping an underlying activity or collection with visual presentation settings. Stored in the creator's PDS.",
|
|
441
|
+
key: 'tid',
|
|
442
|
+
record: {
|
|
443
|
+
type: 'object',
|
|
444
|
+
required: ['subject', 'createdAt'],
|
|
445
|
+
properties: {
|
|
446
|
+
subject: {
|
|
447
|
+
type: 'ref',
|
|
448
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
449
|
+
description: 'Reference to the org.hypercerts.claim.activity or org.hypercerts.claim.collection this board visualizes.',
|
|
450
|
+
},
|
|
451
|
+
config: {
|
|
452
|
+
type: 'ref',
|
|
453
|
+
ref: 'lex:org.hyperboards.board#boardConfig',
|
|
454
|
+
description: 'Board-level visual configuration (background, colors, aspect ratio).',
|
|
455
|
+
},
|
|
456
|
+
contributorConfigs: {
|
|
457
|
+
type: 'array',
|
|
458
|
+
description: 'Per-contributor configuration entries for this board.',
|
|
459
|
+
maxLength: 1000,
|
|
460
|
+
items: {
|
|
461
|
+
type: 'ref',
|
|
462
|
+
ref: 'lex:org.hyperboards.board#contributorConfig',
|
|
463
|
+
},
|
|
464
|
+
},
|
|
465
|
+
createdAt: {
|
|
466
|
+
type: 'string',
|
|
467
|
+
format: 'datetime',
|
|
468
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
469
|
+
},
|
|
470
|
+
},
|
|
471
|
+
},
|
|
472
|
+
},
|
|
473
|
+
boardConfig: {
|
|
474
|
+
type: 'object',
|
|
475
|
+
description: "Visual configuration for a hyperboard's background, colors, and layout.",
|
|
476
|
+
properties: {
|
|
477
|
+
backgroundType: {
|
|
478
|
+
type: 'string',
|
|
479
|
+
description: 'Type of background content.',
|
|
480
|
+
knownValues: ['image', 'iframe'],
|
|
481
|
+
maxLength: 10,
|
|
482
|
+
},
|
|
483
|
+
backgroundImage: {
|
|
484
|
+
type: 'union',
|
|
485
|
+
refs: [
|
|
486
|
+
'lex:org.hypercerts.defs#uri',
|
|
487
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
488
|
+
],
|
|
489
|
+
description: 'Background image as a URI or image blob.',
|
|
490
|
+
},
|
|
491
|
+
backgroundIframeUrl: {
|
|
492
|
+
type: 'string',
|
|
493
|
+
format: 'uri',
|
|
494
|
+
description: 'URI of the background iframe.',
|
|
495
|
+
maxLength: 2048,
|
|
496
|
+
},
|
|
497
|
+
backgroundGrayscale: {
|
|
498
|
+
type: 'boolean',
|
|
499
|
+
description: 'Whether the background is rendered in grayscale. Default: true.',
|
|
500
|
+
},
|
|
501
|
+
backgroundOpacity: {
|
|
502
|
+
type: 'integer',
|
|
503
|
+
description: 'Background opacity as a percentage (0–100).',
|
|
504
|
+
minimum: 0,
|
|
505
|
+
maximum: 100,
|
|
506
|
+
},
|
|
507
|
+
backgroundColor: {
|
|
508
|
+
type: 'string',
|
|
509
|
+
description: "Background color as a hex string (e.g. '#ffffff').",
|
|
510
|
+
maxLength: 20,
|
|
511
|
+
},
|
|
512
|
+
borderColor: {
|
|
513
|
+
type: 'string',
|
|
514
|
+
description: "Border color as a hex string (e.g. '#000000').",
|
|
515
|
+
maxLength: 20,
|
|
516
|
+
},
|
|
517
|
+
grayscaleImages: {
|
|
518
|
+
type: 'boolean',
|
|
519
|
+
description: 'Whether contributor images are rendered in grayscale. Default: false.',
|
|
520
|
+
},
|
|
521
|
+
imageShape: {
|
|
522
|
+
type: 'string',
|
|
523
|
+
description: 'Shape used to crop contributor images on this board.',
|
|
524
|
+
knownValues: ['circular', 'square'],
|
|
525
|
+
maxLength: 20,
|
|
526
|
+
},
|
|
527
|
+
aspectRatio: {
|
|
528
|
+
type: 'string',
|
|
529
|
+
description: 'Display aspect ratio of the board.',
|
|
530
|
+
knownValues: ['16:9', '4:3', '1:1'],
|
|
531
|
+
maxLength: 10,
|
|
532
|
+
},
|
|
533
|
+
},
|
|
534
|
+
},
|
|
535
|
+
contributorConfig: {
|
|
536
|
+
type: 'object',
|
|
537
|
+
description: 'Configuration for a specific contributor within a board. Values serve as fallbacks when the contributor has not defined them on their profile. It can also be used to override contributor settings on this board without changing their global profile.',
|
|
538
|
+
required: ['contributor'],
|
|
539
|
+
properties: {
|
|
540
|
+
contributor: {
|
|
541
|
+
type: 'union',
|
|
542
|
+
refs: [
|
|
543
|
+
'lex:com.atproto.repo.strongRef',
|
|
544
|
+
'lex:org.hypercerts.claim.activity#contributorIdentity',
|
|
545
|
+
],
|
|
546
|
+
description: 'Identifies the contributor being styled. A strong reference to an org.hypercerts.claim.contributorInformation record, or a contributorIdentity (DID or identifier string) for contributors without a dedicated record.',
|
|
547
|
+
},
|
|
548
|
+
override: {
|
|
549
|
+
type: 'boolean',
|
|
550
|
+
description: "When true, these values take precedence over the contributor's own profile and display settings. When false or omitted, they are only used as fallbacks if the contributor has not set their own settings.",
|
|
551
|
+
},
|
|
552
|
+
displayName: {
|
|
553
|
+
type: 'string',
|
|
554
|
+
description: 'Display name for this contributor on this board.',
|
|
555
|
+
maxLength: 640,
|
|
556
|
+
maxGraphemes: 64,
|
|
557
|
+
},
|
|
558
|
+
image: {
|
|
559
|
+
type: 'union',
|
|
560
|
+
refs: [
|
|
561
|
+
'lex:org.hypercerts.defs#uri',
|
|
562
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
563
|
+
],
|
|
564
|
+
description: 'Avatar or face image for this contributor on this board, as a URI or image blob.',
|
|
565
|
+
},
|
|
566
|
+
video: {
|
|
567
|
+
type: 'union',
|
|
568
|
+
refs: [
|
|
569
|
+
'lex:org.hypercerts.defs#uri',
|
|
570
|
+
'lex:org.hypercerts.defs#smallVideo',
|
|
571
|
+
],
|
|
572
|
+
description: 'Video for this contributor, as a URI (embed/direct link) or uploaded video blob.',
|
|
573
|
+
},
|
|
574
|
+
hoverImage: {
|
|
575
|
+
type: 'union',
|
|
576
|
+
refs: [
|
|
577
|
+
'lex:org.hypercerts.defs#uri',
|
|
578
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
579
|
+
],
|
|
580
|
+
description: 'Image overlay shown when hovering over this contributor, as a URI or image blob.',
|
|
581
|
+
},
|
|
582
|
+
hoverIframeUrl: {
|
|
583
|
+
type: 'string',
|
|
584
|
+
format: 'uri',
|
|
585
|
+
description: 'Iframe overlay shown when hovering over this contributor.',
|
|
586
|
+
maxLength: 2048,
|
|
587
|
+
},
|
|
588
|
+
url: {
|
|
589
|
+
type: 'string',
|
|
590
|
+
format: 'uri',
|
|
591
|
+
description: 'Click-through link URL for this contributor.',
|
|
592
|
+
maxLength: 2048,
|
|
593
|
+
},
|
|
594
|
+
},
|
|
595
|
+
},
|
|
596
|
+
},
|
|
597
|
+
},
|
|
598
|
+
OrgHyperboardsDisplayProfile: {
|
|
599
|
+
lexicon: 1,
|
|
600
|
+
id: 'org.hyperboards.displayProfile',
|
|
601
|
+
defs: {
|
|
602
|
+
main: {
|
|
603
|
+
type: 'record',
|
|
604
|
+
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.",
|
|
605
|
+
key: 'literal:self',
|
|
606
|
+
record: {
|
|
607
|
+
type: 'object',
|
|
608
|
+
required: ['createdAt'],
|
|
609
|
+
properties: {
|
|
610
|
+
displayName: {
|
|
611
|
+
type: 'string',
|
|
612
|
+
description: 'Display name override for this user on hyperboards.',
|
|
613
|
+
maxLength: 640,
|
|
614
|
+
maxGraphemes: 64,
|
|
615
|
+
},
|
|
616
|
+
image: {
|
|
617
|
+
type: 'union',
|
|
618
|
+
refs: [
|
|
619
|
+
'lex:org.hypercerts.defs#uri',
|
|
620
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
621
|
+
],
|
|
622
|
+
description: 'Avatar or face image override for this user on hyperboards, as a URI or image blob.',
|
|
623
|
+
},
|
|
624
|
+
video: {
|
|
625
|
+
type: 'union',
|
|
626
|
+
refs: [
|
|
627
|
+
'lex:org.hypercerts.defs#uri',
|
|
628
|
+
'lex:org.hypercerts.defs#smallVideo',
|
|
629
|
+
],
|
|
630
|
+
description: 'Default video for this user across boards, as a URI (embed/direct link) or uploaded video blob.',
|
|
631
|
+
},
|
|
632
|
+
hoverImage: {
|
|
633
|
+
type: 'union',
|
|
634
|
+
refs: [
|
|
635
|
+
'lex:org.hypercerts.defs#uri',
|
|
636
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
637
|
+
],
|
|
638
|
+
description: 'Default hover image for this user across boards, as a URI or image blob.',
|
|
639
|
+
},
|
|
640
|
+
hoverIframeUrl: {
|
|
641
|
+
type: 'string',
|
|
642
|
+
format: 'uri',
|
|
643
|
+
description: 'Default hover iframe URL for this user across boards.',
|
|
644
|
+
maxLength: 2048,
|
|
645
|
+
},
|
|
646
|
+
url: {
|
|
647
|
+
type: 'string',
|
|
648
|
+
format: 'uri',
|
|
649
|
+
description: 'Default click-through link URL for this user across boards.',
|
|
650
|
+
maxLength: 2048,
|
|
651
|
+
},
|
|
652
|
+
createdAt: {
|
|
653
|
+
type: 'string',
|
|
654
|
+
format: 'datetime',
|
|
655
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
656
|
+
},
|
|
657
|
+
},
|
|
658
|
+
},
|
|
659
|
+
},
|
|
660
|
+
},
|
|
661
|
+
},
|
|
338
662
|
OrgHypercertsClaimActivity: {
|
|
339
663
|
lexicon: 1,
|
|
340
664
|
id: 'org.hypercerts.claim.activity',
|
|
@@ -349,7 +673,7 @@ const schemaDict = {
|
|
|
349
673
|
properties: {
|
|
350
674
|
title: {
|
|
351
675
|
type: 'string',
|
|
352
|
-
description:
|
|
676
|
+
description: "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
|
|
353
677
|
maxLength: 256,
|
|
354
678
|
},
|
|
355
679
|
shortDescription: {
|
|
@@ -367,18 +691,9 @@ const schemaDict = {
|
|
|
367
691
|
},
|
|
368
692
|
},
|
|
369
693
|
description: {
|
|
370
|
-
type: '
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
maxGraphemes: 3000,
|
|
374
|
-
},
|
|
375
|
-
descriptionFacets: {
|
|
376
|
-
type: 'array',
|
|
377
|
-
description: 'Rich text annotations for `description` (mentions, URLs, hashtags, etc).',
|
|
378
|
-
items: {
|
|
379
|
-
type: 'ref',
|
|
380
|
-
ref: 'lex:app.bsky.richtext.facet',
|
|
381
|
-
},
|
|
694
|
+
type: 'ref',
|
|
695
|
+
ref: 'lex:pub.leaflet.pages.linearDocument#main',
|
|
696
|
+
description: 'Rich-text description, represented as a Leaflet linear document.',
|
|
382
697
|
},
|
|
383
698
|
image: {
|
|
384
699
|
type: 'union',
|
|
@@ -388,13 +703,22 @@ const schemaDict = {
|
|
|
388
703
|
],
|
|
389
704
|
description: 'The hypercert visual representation as a URI or image blob.',
|
|
390
705
|
},
|
|
706
|
+
contributors: {
|
|
707
|
+
type: 'array',
|
|
708
|
+
description: 'An array of contributor objects, each containing contributor information, weight, and contribution details.',
|
|
709
|
+
maxLength: 1000,
|
|
710
|
+
items: {
|
|
711
|
+
type: 'ref',
|
|
712
|
+
ref: 'lex:org.hypercerts.claim.activity#contributor',
|
|
713
|
+
},
|
|
714
|
+
},
|
|
391
715
|
workScope: {
|
|
392
716
|
type: 'union',
|
|
393
717
|
refs: [
|
|
394
|
-
'lex:
|
|
718
|
+
'lex:org.hypercerts.workscope.cel',
|
|
395
719
|
'lex:org.hypercerts.claim.activity#workScopeString',
|
|
396
720
|
],
|
|
397
|
-
description: 'Work scope definition.
|
|
721
|
+
description: 'Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.',
|
|
398
722
|
},
|
|
399
723
|
startDate: {
|
|
400
724
|
type: 'string',
|
|
@@ -406,12 +730,13 @@ const schemaDict = {
|
|
|
406
730
|
format: 'datetime',
|
|
407
731
|
description: 'When the work ended',
|
|
408
732
|
},
|
|
409
|
-
|
|
733
|
+
locations: {
|
|
410
734
|
type: 'array',
|
|
411
|
-
description: 'An array of
|
|
735
|
+
description: 'An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.',
|
|
736
|
+
maxLength: 1000,
|
|
412
737
|
items: {
|
|
413
738
|
type: 'ref',
|
|
414
|
-
ref: 'lex:
|
|
739
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
415
740
|
},
|
|
416
741
|
},
|
|
417
742
|
rights: {
|
|
@@ -419,14 +744,6 @@ const schemaDict = {
|
|
|
419
744
|
ref: 'lex:com.atproto.repo.strongRef',
|
|
420
745
|
description: 'A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.',
|
|
421
746
|
},
|
|
422
|
-
locations: {
|
|
423
|
-
type: 'array',
|
|
424
|
-
description: 'An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.',
|
|
425
|
-
items: {
|
|
426
|
-
type: 'ref',
|
|
427
|
-
ref: 'lex:com.atproto.repo.strongRef',
|
|
428
|
-
},
|
|
429
|
-
},
|
|
430
747
|
createdAt: {
|
|
431
748
|
type: 'string',
|
|
432
749
|
format: 'datetime',
|
|
@@ -445,11 +762,12 @@ const schemaDict = {
|
|
|
445
762
|
'lex:org.hypercerts.claim.activity#contributorIdentity',
|
|
446
763
|
'lex:com.atproto.repo.strongRef',
|
|
447
764
|
],
|
|
448
|
-
description: '
|
|
765
|
+
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.',
|
|
449
766
|
},
|
|
450
767
|
contributionWeight: {
|
|
451
768
|
type: 'string',
|
|
452
769
|
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.',
|
|
770
|
+
maxLength: 100,
|
|
453
771
|
},
|
|
454
772
|
contributionDetails: {
|
|
455
773
|
type: 'union',
|
|
@@ -457,7 +775,7 @@ const schemaDict = {
|
|
|
457
775
|
'lex:org.hypercerts.claim.activity#contributorRole',
|
|
458
776
|
'lex:com.atproto.repo.strongRef',
|
|
459
777
|
],
|
|
460
|
-
description: '
|
|
778
|
+
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.',
|
|
461
779
|
},
|
|
462
780
|
},
|
|
463
781
|
},
|
|
@@ -502,95 +820,143 @@ const schemaDict = {
|
|
|
502
820
|
},
|
|
503
821
|
},
|
|
504
822
|
},
|
|
505
|
-
|
|
823
|
+
OrgHypercertsClaimContribution: {
|
|
506
824
|
lexicon: 1,
|
|
507
|
-
id: 'org.hypercerts.claim.
|
|
825
|
+
id: 'org.hypercerts.claim.contribution',
|
|
508
826
|
defs: {
|
|
509
827
|
main: {
|
|
510
828
|
type: 'record',
|
|
511
|
-
description: '
|
|
829
|
+
description: 'Details about a specific contribution including role, description, and timeframe.',
|
|
512
830
|
key: 'tid',
|
|
513
831
|
record: {
|
|
514
832
|
type: 'object',
|
|
515
|
-
required: ['
|
|
833
|
+
required: ['createdAt'],
|
|
516
834
|
properties: {
|
|
517
|
-
|
|
518
|
-
type: '
|
|
519
|
-
description: '
|
|
520
|
-
items: {
|
|
521
|
-
type: 'ref',
|
|
522
|
-
ref: 'lex:com.atproto.repo.strongRef',
|
|
523
|
-
},
|
|
835
|
+
role: {
|
|
836
|
+
type: 'string',
|
|
837
|
+
description: 'Role or title of the contributor.',
|
|
524
838
|
maxLength: 100,
|
|
525
839
|
},
|
|
526
|
-
|
|
840
|
+
contributionDescription: {
|
|
527
841
|
type: 'string',
|
|
528
|
-
|
|
529
|
-
|
|
842
|
+
description: 'Description of what the contribution concretely involved.',
|
|
843
|
+
maxLength: 10000,
|
|
844
|
+
maxGraphemes: 1000,
|
|
530
845
|
},
|
|
531
|
-
|
|
532
|
-
type: '
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
type: 'union',
|
|
536
|
-
refs: [
|
|
537
|
-
'lex:org.hypercerts.defs#uri',
|
|
538
|
-
'lex:org.hypercerts.defs#smallBlob',
|
|
539
|
-
],
|
|
540
|
-
},
|
|
541
|
-
maxLength: 100,
|
|
846
|
+
startDate: {
|
|
847
|
+
type: 'string',
|
|
848
|
+
format: 'datetime',
|
|
849
|
+
description: "When this contribution started. Should fall within the parent hypercert's timeframe.",
|
|
542
850
|
},
|
|
543
|
-
|
|
851
|
+
endDate: {
|
|
544
852
|
type: 'string',
|
|
545
|
-
|
|
546
|
-
description:
|
|
853
|
+
format: 'datetime',
|
|
854
|
+
description: "When this contribution finished. Should fall within the parent hypercert's timeframe.",
|
|
547
855
|
},
|
|
548
|
-
|
|
856
|
+
createdAt: {
|
|
549
857
|
type: 'string',
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
maxGraphemes: 300,
|
|
858
|
+
format: 'datetime',
|
|
859
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
553
860
|
},
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
861
|
+
},
|
|
862
|
+
},
|
|
863
|
+
},
|
|
864
|
+
},
|
|
865
|
+
},
|
|
866
|
+
OrgHypercertsClaimContributorInformation: {
|
|
867
|
+
lexicon: 1,
|
|
868
|
+
id: 'org.hypercerts.claim.contributorInformation',
|
|
869
|
+
defs: {
|
|
870
|
+
main: {
|
|
871
|
+
type: 'record',
|
|
872
|
+
description: 'Contributor information including identifier, display name, and image.',
|
|
873
|
+
key: 'tid',
|
|
874
|
+
record: {
|
|
875
|
+
type: 'object',
|
|
876
|
+
required: ['createdAt'],
|
|
877
|
+
properties: {
|
|
878
|
+
identifier: {
|
|
879
|
+
type: 'string',
|
|
880
|
+
description: 'DID (did:plc:...) or URI to a social profile of the contributor.',
|
|
881
|
+
maxLength: 2048,
|
|
561
882
|
},
|
|
562
|
-
|
|
883
|
+
displayName: {
|
|
563
884
|
type: 'string',
|
|
564
|
-
description: '
|
|
565
|
-
maxLength:
|
|
566
|
-
maxGraphemes: 3000,
|
|
885
|
+
description: 'Human-readable name for the contributor as it should appear in UI.',
|
|
886
|
+
maxLength: 100,
|
|
567
887
|
},
|
|
568
|
-
|
|
569
|
-
type: '
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
888
|
+
image: {
|
|
889
|
+
type: 'union',
|
|
890
|
+
refs: [
|
|
891
|
+
'lex:org.hypercerts.defs#uri',
|
|
892
|
+
'lex:org.hypercerts.defs#smallImage',
|
|
893
|
+
],
|
|
894
|
+
description: 'The contributor visual representation as a URI or image blob.',
|
|
895
|
+
},
|
|
896
|
+
createdAt: {
|
|
897
|
+
type: 'string',
|
|
898
|
+
format: 'datetime',
|
|
899
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
900
|
+
},
|
|
901
|
+
},
|
|
902
|
+
},
|
|
903
|
+
},
|
|
904
|
+
},
|
|
905
|
+
},
|
|
906
|
+
OrgHypercertsClaimRights: {
|
|
907
|
+
lexicon: 1,
|
|
908
|
+
id: 'org.hypercerts.claim.rights',
|
|
909
|
+
defs: {
|
|
910
|
+
main: {
|
|
911
|
+
type: 'record',
|
|
912
|
+
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.',
|
|
913
|
+
key: 'tid',
|
|
914
|
+
record: {
|
|
915
|
+
type: 'object',
|
|
916
|
+
required: [
|
|
917
|
+
'rightsName',
|
|
918
|
+
'rightsType',
|
|
919
|
+
'rightsDescription',
|
|
920
|
+
'createdAt',
|
|
921
|
+
],
|
|
922
|
+
properties: {
|
|
923
|
+
rightsName: {
|
|
924
|
+
type: 'string',
|
|
925
|
+
description: "Human-readable name for these rights (e.g. 'All Rights Reserved', 'CC BY-SA 4.0')",
|
|
926
|
+
maxLength: 100,
|
|
927
|
+
},
|
|
928
|
+
rightsType: {
|
|
929
|
+
type: 'string',
|
|
930
|
+
description: "Short identifier code for this rights type (e.g. 'ARR', 'CC-BY-SA') to facilitate filtering and search",
|
|
931
|
+
maxLength: 10,
|
|
932
|
+
},
|
|
933
|
+
rightsDescription: {
|
|
934
|
+
type: 'string',
|
|
935
|
+
description: "Detailed explanation of the rights holders' permissions, restrictions, and conditions",
|
|
936
|
+
maxLength: 10000,
|
|
937
|
+
maxGraphemes: 1000,
|
|
575
938
|
},
|
|
576
|
-
|
|
577
|
-
type: '
|
|
578
|
-
|
|
579
|
-
|
|
939
|
+
attachment: {
|
|
940
|
+
type: 'union',
|
|
941
|
+
refs: [
|
|
942
|
+
'lex:org.hypercerts.defs#uri',
|
|
943
|
+
'lex:org.hypercerts.defs#smallBlob',
|
|
944
|
+
],
|
|
945
|
+
description: 'An attachment to define the rights further, e.g. a legal document.',
|
|
580
946
|
},
|
|
581
947
|
createdAt: {
|
|
582
948
|
type: 'string',
|
|
583
949
|
format: 'datetime',
|
|
584
|
-
description: 'Client-declared timestamp when this record was originally created
|
|
950
|
+
description: 'Client-declared timestamp when this record was originally created',
|
|
585
951
|
},
|
|
586
952
|
},
|
|
587
953
|
},
|
|
588
954
|
},
|
|
589
955
|
},
|
|
590
956
|
},
|
|
591
|
-
|
|
957
|
+
OrgHypercertsCollection: {
|
|
592
958
|
lexicon: 1,
|
|
593
|
-
id: 'org.hypercerts.
|
|
959
|
+
id: 'org.hypercerts.collection',
|
|
594
960
|
defs: {
|
|
595
961
|
main: {
|
|
596
962
|
type: 'record',
|
|
@@ -598,15 +964,16 @@ const schemaDict = {
|
|
|
598
964
|
key: 'tid',
|
|
599
965
|
record: {
|
|
600
966
|
type: 'object',
|
|
601
|
-
required: ['title', '
|
|
967
|
+
required: ['title', 'createdAt'],
|
|
602
968
|
properties: {
|
|
603
969
|
type: {
|
|
604
970
|
type: 'string',
|
|
605
971
|
description: "The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection.",
|
|
972
|
+
maxLength: 64,
|
|
606
973
|
},
|
|
607
974
|
title: {
|
|
608
975
|
type: 'string',
|
|
609
|
-
description:
|
|
976
|
+
description: "Display name for this collection (e.g. 'Q1 2025 Impact Projects')",
|
|
610
977
|
maxLength: 800,
|
|
611
978
|
maxGraphemes: 80,
|
|
612
979
|
},
|
|
@@ -640,9 +1007,10 @@ const schemaDict = {
|
|
|
640
1007
|
items: {
|
|
641
1008
|
type: 'array',
|
|
642
1009
|
description: 'Array of items in this collection with optional weights.',
|
|
1010
|
+
maxLength: 1000,
|
|
643
1011
|
items: {
|
|
644
1012
|
type: 'ref',
|
|
645
|
-
ref: 'lex:org.hypercerts.
|
|
1013
|
+
ref: 'lex:org.hypercerts.collection#item',
|
|
646
1014
|
},
|
|
647
1015
|
},
|
|
648
1016
|
location: {
|
|
@@ -665,48 +1033,51 @@ const schemaDict = {
|
|
|
665
1033
|
itemIdentifier: {
|
|
666
1034
|
type: 'ref',
|
|
667
1035
|
ref: 'lex:com.atproto.repo.strongRef',
|
|
668
|
-
description: 'Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.
|
|
1036
|
+
description: 'Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.collection).',
|
|
669
1037
|
},
|
|
670
1038
|
itemWeight: {
|
|
671
1039
|
type: 'string',
|
|
672
1040
|
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.',
|
|
1041
|
+
maxLength: 100,
|
|
673
1042
|
},
|
|
674
1043
|
},
|
|
675
1044
|
},
|
|
676
1045
|
},
|
|
677
1046
|
},
|
|
678
|
-
|
|
1047
|
+
OrgHypercertsContextAcknowledgement: {
|
|
679
1048
|
lexicon: 1,
|
|
680
|
-
id: 'org.hypercerts.
|
|
1049
|
+
id: 'org.hypercerts.context.acknowledgement',
|
|
681
1050
|
defs: {
|
|
682
1051
|
main: {
|
|
683
1052
|
type: 'record',
|
|
684
|
-
description: '
|
|
1053
|
+
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.",
|
|
685
1054
|
key: 'tid',
|
|
686
1055
|
record: {
|
|
687
1056
|
type: 'object',
|
|
688
|
-
required: ['createdAt'],
|
|
1057
|
+
required: ['subject', 'acknowledged', 'createdAt'],
|
|
689
1058
|
properties: {
|
|
690
|
-
|
|
691
|
-
type: '
|
|
692
|
-
|
|
693
|
-
|
|
1059
|
+
subject: {
|
|
1060
|
+
type: 'ref',
|
|
1061
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1062
|
+
description: 'The record being acknowledged (e.g. an activity, a contributor information record, an evaluation).',
|
|
694
1063
|
},
|
|
695
|
-
|
|
696
|
-
type: '
|
|
697
|
-
|
|
698
|
-
|
|
699
|
-
|
|
1064
|
+
context: {
|
|
1065
|
+
type: 'union',
|
|
1066
|
+
refs: [
|
|
1067
|
+
'lex:org.hypercerts.defs#uri',
|
|
1068
|
+
'lex:com.atproto.repo.strongRef',
|
|
1069
|
+
],
|
|
1070
|
+
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.',
|
|
700
1071
|
},
|
|
701
|
-
|
|
702
|
-
type: '
|
|
703
|
-
|
|
704
|
-
description: 'When this contribution started. This should be a subset of the hypercert timeframe.',
|
|
1072
|
+
acknowledged: {
|
|
1073
|
+
type: 'boolean',
|
|
1074
|
+
description: 'Whether the relationship is acknowledged (true) or rejected (false).',
|
|
705
1075
|
},
|
|
706
|
-
|
|
1076
|
+
comment: {
|
|
707
1077
|
type: 'string',
|
|
708
|
-
|
|
709
|
-
|
|
1078
|
+
description: 'Optional plain-text comment providing additional context or reasoning.',
|
|
1079
|
+
maxLength: 10000,
|
|
1080
|
+
maxGraphemes: 1000,
|
|
710
1081
|
},
|
|
711
1082
|
createdAt: {
|
|
712
1083
|
type: 'string',
|
|
@@ -718,34 +1089,72 @@ const schemaDict = {
|
|
|
718
1089
|
},
|
|
719
1090
|
},
|
|
720
1091
|
},
|
|
721
|
-
|
|
1092
|
+
OrgHypercertsContextAttachment: {
|
|
722
1093
|
lexicon: 1,
|
|
723
|
-
id: 'org.hypercerts.
|
|
1094
|
+
id: 'org.hypercerts.context.attachment',
|
|
724
1095
|
defs: {
|
|
725
1096
|
main: {
|
|
726
1097
|
type: 'record',
|
|
727
|
-
description: '
|
|
1098
|
+
description: 'An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).',
|
|
728
1099
|
key: 'tid',
|
|
729
1100
|
record: {
|
|
730
1101
|
type: 'object',
|
|
731
|
-
required: ['createdAt'],
|
|
1102
|
+
required: ['title', 'createdAt'],
|
|
732
1103
|
properties: {
|
|
733
|
-
|
|
734
|
-
type: '
|
|
735
|
-
description: '
|
|
1104
|
+
subjects: {
|
|
1105
|
+
type: 'array',
|
|
1106
|
+
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.',
|
|
1107
|
+
items: {
|
|
1108
|
+
type: 'ref',
|
|
1109
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1110
|
+
},
|
|
1111
|
+
maxLength: 100,
|
|
736
1112
|
},
|
|
737
|
-
|
|
1113
|
+
contentType: {
|
|
738
1114
|
type: 'string',
|
|
739
|
-
|
|
1115
|
+
maxLength: 64,
|
|
1116
|
+
description: 'The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc.',
|
|
1117
|
+
},
|
|
1118
|
+
content: {
|
|
1119
|
+
type: 'array',
|
|
1120
|
+
description: 'The files, documents, or external references included in this attachment record.',
|
|
1121
|
+
items: {
|
|
1122
|
+
type: 'union',
|
|
1123
|
+
refs: [
|
|
1124
|
+
'lex:org.hypercerts.defs#uri',
|
|
1125
|
+
'lex:org.hypercerts.defs#smallBlob',
|
|
1126
|
+
],
|
|
1127
|
+
},
|
|
740
1128
|
maxLength: 100,
|
|
741
1129
|
},
|
|
742
|
-
|
|
743
|
-
type: '
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
1130
|
+
title: {
|
|
1131
|
+
type: 'string',
|
|
1132
|
+
maxLength: 256,
|
|
1133
|
+
description: "Display title for this attachment (e.g. 'Impact Assessment Report', 'Audit Findings')",
|
|
1134
|
+
},
|
|
1135
|
+
shortDescription: {
|
|
1136
|
+
type: 'string',
|
|
1137
|
+
description: 'Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.',
|
|
1138
|
+
maxLength: 3000,
|
|
1139
|
+
maxGraphemes: 300,
|
|
1140
|
+
},
|
|
1141
|
+
shortDescriptionFacets: {
|
|
1142
|
+
type: 'array',
|
|
1143
|
+
description: 'Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).',
|
|
1144
|
+
items: {
|
|
1145
|
+
type: 'ref',
|
|
1146
|
+
ref: 'lex:app.bsky.richtext.facet',
|
|
1147
|
+
},
|
|
1148
|
+
},
|
|
1149
|
+
description: {
|
|
1150
|
+
type: 'ref',
|
|
1151
|
+
ref: 'lex:pub.leaflet.pages.linearDocument#main',
|
|
1152
|
+
description: 'Rich-text description, represented as a Leaflet linear document.',
|
|
1153
|
+
},
|
|
1154
|
+
location: {
|
|
1155
|
+
type: 'ref',
|
|
1156
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1157
|
+
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.",
|
|
749
1158
|
},
|
|
750
1159
|
createdAt: {
|
|
751
1160
|
type: 'string',
|
|
@@ -757,29 +1166,10 @@ const schemaDict = {
|
|
|
757
1166
|
},
|
|
758
1167
|
},
|
|
759
1168
|
},
|
|
760
|
-
|
|
1169
|
+
OrgHypercertsContextEvaluation: {
|
|
761
1170
|
lexicon: 1,
|
|
762
|
-
id: 'org.hypercerts.
|
|
1171
|
+
id: 'org.hypercerts.context.evaluation',
|
|
763
1172
|
defs: {
|
|
764
|
-
score: {
|
|
765
|
-
type: 'object',
|
|
766
|
-
description: 'Overall score for an evaluation on a numeric scale.',
|
|
767
|
-
required: ['min', 'max', 'value'],
|
|
768
|
-
properties: {
|
|
769
|
-
min: {
|
|
770
|
-
type: 'integer',
|
|
771
|
-
description: 'Minimum value of the scale, e.g. 0 or 1.',
|
|
772
|
-
},
|
|
773
|
-
max: {
|
|
774
|
-
type: 'integer',
|
|
775
|
-
description: 'Maximum value of the scale, e.g. 5 or 10.',
|
|
776
|
-
},
|
|
777
|
-
value: {
|
|
778
|
-
type: 'integer',
|
|
779
|
-
description: 'Score within the inclusive range [min, max].',
|
|
780
|
-
},
|
|
781
|
-
},
|
|
782
|
-
},
|
|
783
1173
|
main: {
|
|
784
1174
|
type: 'record',
|
|
785
1175
|
description: 'An evaluation of a hypercert record (e.g. an activity and its impact).',
|
|
@@ -791,7 +1181,7 @@ const schemaDict = {
|
|
|
791
1181
|
subject: {
|
|
792
1182
|
type: 'ref',
|
|
793
1183
|
ref: 'lex:com.atproto.repo.strongRef',
|
|
794
|
-
description: 'A strong reference to what is being evaluated
|
|
1184
|
+
description: 'A strong reference to what is being evaluated (e.g. activity, measurement, contribution, etc.)',
|
|
795
1185
|
},
|
|
796
1186
|
evaluators: {
|
|
797
1187
|
type: 'array',
|
|
@@ -816,7 +1206,7 @@ const schemaDict = {
|
|
|
816
1206
|
},
|
|
817
1207
|
measurements: {
|
|
818
1208
|
type: 'array',
|
|
819
|
-
description: 'Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.
|
|
1209
|
+
description: 'Optional references to the measurements that contributed to this evaluation. The record(s) referenced must conform with the lexicon org.hypercerts.context.measurement',
|
|
820
1210
|
items: {
|
|
821
1211
|
type: 'ref',
|
|
822
1212
|
ref: 'lex:com.atproto.repo.strongRef',
|
|
@@ -831,7 +1221,7 @@ const schemaDict = {
|
|
|
831
1221
|
},
|
|
832
1222
|
score: {
|
|
833
1223
|
type: 'ref',
|
|
834
|
-
ref: 'lex:org.hypercerts.
|
|
1224
|
+
ref: 'lex:org.hypercerts.context.evaluation#score',
|
|
835
1225
|
description: 'Optional overall score for this evaluation on a numeric scale.',
|
|
836
1226
|
},
|
|
837
1227
|
location: {
|
|
@@ -847,24 +1237,47 @@ const schemaDict = {
|
|
|
847
1237
|
},
|
|
848
1238
|
},
|
|
849
1239
|
},
|
|
1240
|
+
score: {
|
|
1241
|
+
type: 'object',
|
|
1242
|
+
description: 'Overall score for an evaluation on a numeric scale.',
|
|
1243
|
+
required: ['min', 'max', 'value'],
|
|
1244
|
+
properties: {
|
|
1245
|
+
min: {
|
|
1246
|
+
type: 'integer',
|
|
1247
|
+
description: 'Minimum value of the scale, e.g. 0 or 1.',
|
|
1248
|
+
},
|
|
1249
|
+
max: {
|
|
1250
|
+
type: 'integer',
|
|
1251
|
+
description: 'Maximum value of the scale, e.g. 5 or 10.',
|
|
1252
|
+
},
|
|
1253
|
+
value: {
|
|
1254
|
+
type: 'integer',
|
|
1255
|
+
description: 'Score within the inclusive range [min, max].',
|
|
1256
|
+
},
|
|
1257
|
+
},
|
|
1258
|
+
},
|
|
850
1259
|
},
|
|
851
1260
|
},
|
|
852
|
-
|
|
1261
|
+
OrgHypercertsContextMeasurement: {
|
|
853
1262
|
lexicon: 1,
|
|
854
|
-
id: 'org.hypercerts.
|
|
1263
|
+
id: 'org.hypercerts.context.measurement',
|
|
855
1264
|
defs: {
|
|
856
1265
|
main: {
|
|
857
1266
|
type: 'record',
|
|
858
|
-
description: 'Measurement data related to
|
|
1267
|
+
description: 'Measurement data related to one or more records (e.g. activities, projects, etc.).',
|
|
859
1268
|
key: 'tid',
|
|
860
1269
|
record: {
|
|
861
1270
|
type: 'object',
|
|
862
1271
|
required: ['metric', 'unit', 'value', 'createdAt'],
|
|
863
1272
|
properties: {
|
|
864
|
-
|
|
865
|
-
type: '
|
|
866
|
-
|
|
867
|
-
|
|
1273
|
+
subjects: {
|
|
1274
|
+
type: 'array',
|
|
1275
|
+
description: 'Strong references to the records this measurement refers to (e.g. activities, projects, or claims).',
|
|
1276
|
+
items: {
|
|
1277
|
+
type: 'ref',
|
|
1278
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1279
|
+
},
|
|
1280
|
+
maxLength: 100,
|
|
868
1281
|
},
|
|
869
1282
|
metric: {
|
|
870
1283
|
type: 'string',
|
|
@@ -878,7 +1291,7 @@ const schemaDict = {
|
|
|
878
1291
|
},
|
|
879
1292
|
value: {
|
|
880
1293
|
type: 'string',
|
|
881
|
-
description:
|
|
1294
|
+
description: "The measured value as a numeric string (e.g. '1234.56')",
|
|
882
1295
|
maxLength: 500,
|
|
883
1296
|
},
|
|
884
1297
|
startDate: {
|
|
@@ -889,7 +1302,7 @@ const schemaDict = {
|
|
|
889
1302
|
endDate: {
|
|
890
1303
|
type: 'string',
|
|
891
1304
|
format: 'datetime',
|
|
892
|
-
description: 'The end date and time when the measurement ended.
|
|
1305
|
+
description: 'The end date and time when the measurement ended. For one-time measurements, this should equal the start date.',
|
|
893
1306
|
},
|
|
894
1307
|
locations: {
|
|
895
1308
|
type: 'array',
|
|
@@ -921,7 +1334,7 @@ const schemaDict = {
|
|
|
921
1334
|
},
|
|
922
1335
|
measurers: {
|
|
923
1336
|
type: 'array',
|
|
924
|
-
description: 'DIDs of the
|
|
1337
|
+
description: 'DIDs of the entities that performed this measurement',
|
|
925
1338
|
items: {
|
|
926
1339
|
type: 'ref',
|
|
927
1340
|
ref: 'lex:app.certified.defs#did',
|
|
@@ -952,58 +1365,10 @@ const schemaDict = {
|
|
|
952
1365
|
},
|
|
953
1366
|
},
|
|
954
1367
|
},
|
|
955
|
-
OrgHypercertsClaimRights: {
|
|
956
|
-
lexicon: 1,
|
|
957
|
-
id: 'org.hypercerts.claim.rights',
|
|
958
|
-
defs: {
|
|
959
|
-
main: {
|
|
960
|
-
type: 'record',
|
|
961
|
-
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.',
|
|
962
|
-
key: 'tid',
|
|
963
|
-
record: {
|
|
964
|
-
type: 'object',
|
|
965
|
-
required: [
|
|
966
|
-
'rightsName',
|
|
967
|
-
'rightsType',
|
|
968
|
-
'rightsDescription',
|
|
969
|
-
'createdAt',
|
|
970
|
-
],
|
|
971
|
-
properties: {
|
|
972
|
-
rightsName: {
|
|
973
|
-
type: 'string',
|
|
974
|
-
description: 'Full name of the rights',
|
|
975
|
-
maxLength: 100,
|
|
976
|
-
},
|
|
977
|
-
rightsType: {
|
|
978
|
-
type: 'string',
|
|
979
|
-
description: 'Short rights identifier for easier search',
|
|
980
|
-
maxLength: 10,
|
|
981
|
-
},
|
|
982
|
-
rightsDescription: {
|
|
983
|
-
type: 'string',
|
|
984
|
-
description: 'Description of the rights of this hypercert',
|
|
985
|
-
},
|
|
986
|
-
attachment: {
|
|
987
|
-
type: 'union',
|
|
988
|
-
refs: [
|
|
989
|
-
'lex:org.hypercerts.defs#uri',
|
|
990
|
-
'lex:org.hypercerts.defs#smallBlob',
|
|
991
|
-
],
|
|
992
|
-
description: 'An attachment to define the rights further, e.g. a legal document.',
|
|
993
|
-
},
|
|
994
|
-
createdAt: {
|
|
995
|
-
type: 'string',
|
|
996
|
-
format: 'datetime',
|
|
997
|
-
description: 'Client-declared timestamp when this record was originally created',
|
|
998
|
-
},
|
|
999
|
-
},
|
|
1000
|
-
},
|
|
1001
|
-
},
|
|
1002
|
-
},
|
|
1003
|
-
},
|
|
1004
1368
|
OrgHypercertsDefs: {
|
|
1005
1369
|
lexicon: 1,
|
|
1006
1370
|
id: 'org.hypercerts.defs',
|
|
1371
|
+
description: 'Common type definitions used across all Hypercerts protocols.',
|
|
1007
1372
|
defs: {
|
|
1008
1373
|
uri: {
|
|
1009
1374
|
type: 'object',
|
|
@@ -1013,7 +1378,6 @@ const schemaDict = {
|
|
|
1013
1378
|
uri: {
|
|
1014
1379
|
type: 'string',
|
|
1015
1380
|
format: 'uri',
|
|
1016
|
-
maxGraphemes: 1024,
|
|
1017
1381
|
description: 'URI to external data',
|
|
1018
1382
|
},
|
|
1019
1383
|
},
|
|
@@ -1057,6 +1421,19 @@ const schemaDict = {
|
|
|
1057
1421
|
},
|
|
1058
1422
|
},
|
|
1059
1423
|
},
|
|
1424
|
+
smallVideo: {
|
|
1425
|
+
type: 'object',
|
|
1426
|
+
required: ['video'],
|
|
1427
|
+
description: 'Object containing a small video',
|
|
1428
|
+
properties: {
|
|
1429
|
+
video: {
|
|
1430
|
+
type: 'blob',
|
|
1431
|
+
accept: ['video/mp4', 'video/webm'],
|
|
1432
|
+
maxSize: 20971520,
|
|
1433
|
+
description: 'Video (up to 20MB)',
|
|
1434
|
+
},
|
|
1435
|
+
},
|
|
1436
|
+
},
|
|
1060
1437
|
largeImage: {
|
|
1061
1438
|
type: 'object',
|
|
1062
1439
|
required: ['image'],
|
|
@@ -1092,26 +1469,32 @@ const schemaDict = {
|
|
|
1092
1469
|
to: {
|
|
1093
1470
|
type: 'string',
|
|
1094
1471
|
description: 'The recipient of the funds. Can be identified by DID or a clear-text name.',
|
|
1472
|
+
maxLength: 2048,
|
|
1095
1473
|
},
|
|
1096
1474
|
amount: {
|
|
1097
1475
|
type: 'string',
|
|
1098
|
-
description:
|
|
1476
|
+
description: "Amount of funding received as a numeric string (e.g. '1000.50').",
|
|
1477
|
+
maxLength: 50,
|
|
1099
1478
|
},
|
|
1100
1479
|
currency: {
|
|
1101
1480
|
type: 'string',
|
|
1102
1481
|
description: 'Currency of the payment (e.g. EUR, USD, ETH).',
|
|
1482
|
+
maxLength: 10,
|
|
1103
1483
|
},
|
|
1104
1484
|
paymentRail: {
|
|
1105
1485
|
type: 'string',
|
|
1106
1486
|
description: 'How the funds were transferred (e.g. bank_transfer, credit_card, onchain, cash, check, payment_processor).',
|
|
1487
|
+
maxLength: 50,
|
|
1107
1488
|
},
|
|
1108
1489
|
paymentNetwork: {
|
|
1109
1490
|
type: 'string',
|
|
1110
1491
|
description: 'Optional network within the payment rail (e.g. arbitrum, ethereum, sepa, visa, paypal).',
|
|
1492
|
+
maxLength: 50,
|
|
1111
1493
|
},
|
|
1112
1494
|
transactionId: {
|
|
1113
1495
|
type: 'string',
|
|
1114
1496
|
description: 'Identifier of the underlying payment transaction (e.g. bank reference, onchain transaction hash, or processor-specific ID). Use paymentNetwork to specify the network where applicable.',
|
|
1497
|
+
maxLength: 256,
|
|
1115
1498
|
},
|
|
1116
1499
|
for: {
|
|
1117
1500
|
type: 'string',
|
|
@@ -1138,36 +1521,71 @@ const schemaDict = {
|
|
|
1138
1521
|
},
|
|
1139
1522
|
},
|
|
1140
1523
|
},
|
|
1141
|
-
|
|
1524
|
+
OrgHypercertsWorkscopeCel: {
|
|
1525
|
+
lexicon: 1,
|
|
1526
|
+
id: 'org.hypercerts.workscope.cel',
|
|
1527
|
+
defs: {
|
|
1528
|
+
main: {
|
|
1529
|
+
type: 'object',
|
|
1530
|
+
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.",
|
|
1531
|
+
required: ['expression', 'usedTags', 'version', 'createdAt'],
|
|
1532
|
+
properties: {
|
|
1533
|
+
expression: {
|
|
1534
|
+
type: 'string',
|
|
1535
|
+
maxLength: 10000,
|
|
1536
|
+
maxGraphemes: 5000,
|
|
1537
|
+
description: "A CEL expression encoding the work scope conditions. Example: scope.hasAll(['mangrove_restoration', 'environmental_education']) && location.country == 'KE'",
|
|
1538
|
+
},
|
|
1539
|
+
usedTags: {
|
|
1540
|
+
type: 'array',
|
|
1541
|
+
items: {
|
|
1542
|
+
type: 'ref',
|
|
1543
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1544
|
+
},
|
|
1545
|
+
maxLength: 100,
|
|
1546
|
+
description: 'Strong references to org.hypercerts.workscope.tag records used in the expression. Enables fast indexing by AT-URI and provides referential integrity to the underlying tag records.',
|
|
1547
|
+
},
|
|
1548
|
+
version: {
|
|
1549
|
+
type: 'string',
|
|
1550
|
+
maxLength: 16,
|
|
1551
|
+
knownValues: ['v1'],
|
|
1552
|
+
description: 'CEL context schema version.',
|
|
1553
|
+
},
|
|
1554
|
+
createdAt: {
|
|
1555
|
+
type: 'string',
|
|
1556
|
+
format: 'datetime',
|
|
1557
|
+
description: 'Client-declared timestamp when this expression was originally created.',
|
|
1558
|
+
},
|
|
1559
|
+
},
|
|
1560
|
+
},
|
|
1561
|
+
},
|
|
1562
|
+
},
|
|
1563
|
+
OrgHypercertsWorkscopeTag: {
|
|
1142
1564
|
lexicon: 1,
|
|
1143
|
-
id: 'org.hypercerts.
|
|
1565
|
+
id: 'org.hypercerts.workscope.tag',
|
|
1144
1566
|
defs: {
|
|
1145
1567
|
main: {
|
|
1146
1568
|
type: 'record',
|
|
1147
|
-
description: 'A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels.',
|
|
1569
|
+
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.',
|
|
1148
1570
|
key: 'tid',
|
|
1149
1571
|
record: {
|
|
1150
1572
|
type: 'object',
|
|
1151
|
-
required: ['
|
|
1573
|
+
required: ['key', 'name', 'createdAt'],
|
|
1152
1574
|
properties: {
|
|
1153
|
-
createdAt: {
|
|
1154
|
-
type: 'string',
|
|
1155
|
-
format: 'datetime',
|
|
1156
|
-
description: 'Client-declared timestamp when this record was originally created',
|
|
1157
|
-
},
|
|
1158
1575
|
key: {
|
|
1159
1576
|
type: 'string',
|
|
1160
|
-
description: "Lowercase,
|
|
1577
|
+
description: "Lowercase, underscore-separated machine-readable key for this scope (e.g., 'mangrove_restoration', 'biodiversity_monitoring'). Used as the canonical identifier in CEL expressions.",
|
|
1161
1578
|
maxLength: 120,
|
|
1162
1579
|
},
|
|
1163
|
-
|
|
1580
|
+
name: {
|
|
1164
1581
|
type: 'string',
|
|
1165
|
-
description: 'Human-readable
|
|
1582
|
+
description: 'Human-readable name for this scope.',
|
|
1166
1583
|
maxLength: 200,
|
|
1167
1584
|
},
|
|
1168
|
-
|
|
1585
|
+
category: {
|
|
1169
1586
|
type: 'string',
|
|
1170
|
-
description: 'Category type of this scope.
|
|
1587
|
+
description: 'Category type of this scope.',
|
|
1588
|
+
knownValues: ['topic', 'language', 'domain', 'method'],
|
|
1171
1589
|
maxLength: 50,
|
|
1172
1590
|
},
|
|
1173
1591
|
description: {
|
|
@@ -1179,7 +1597,18 @@ const schemaDict = {
|
|
|
1179
1597
|
parent: {
|
|
1180
1598
|
type: 'ref',
|
|
1181
1599
|
ref: 'lex:com.atproto.repo.strongRef',
|
|
1182
|
-
description: 'Optional strong reference to a parent scope record for taxonomy/hierarchy support.',
|
|
1600
|
+
description: 'Optional strong reference to a parent work scope tag record for taxonomy/hierarchy support. The record referenced must conform with the lexicon org.hypercerts.workscope.tag.',
|
|
1601
|
+
},
|
|
1602
|
+
status: {
|
|
1603
|
+
type: 'string',
|
|
1604
|
+
description: 'Lifecycle status of this tag. Communities propose tags, curators accept them, deprecated tags point to replacements via supersededBy.',
|
|
1605
|
+
knownValues: ['proposed', 'accepted', 'deprecated'],
|
|
1606
|
+
maxLength: 20,
|
|
1607
|
+
},
|
|
1608
|
+
supersededBy: {
|
|
1609
|
+
type: 'ref',
|
|
1610
|
+
ref: 'lex:com.atproto.repo.strongRef',
|
|
1611
|
+
description: "When status is 'deprecated', points to the replacement work scope tag record. The record referenced must conform with the lexicon org.hypercerts.workscope.tag.",
|
|
1183
1612
|
},
|
|
1184
1613
|
aliases: {
|
|
1185
1614
|
type: 'array',
|
|
@@ -1188,15 +1617,30 @@ const schemaDict = {
|
|
|
1188
1617
|
maxLength: 200,
|
|
1189
1618
|
},
|
|
1190
1619
|
maxLength: 50,
|
|
1191
|
-
description: '
|
|
1620
|
+
description: 'Alternative human-readable names for this scope (e.g., translations, abbreviations, or common synonyms). Unlike sameAs, these are plain-text labels, not links to external ontologies.',
|
|
1621
|
+
},
|
|
1622
|
+
sameAs: {
|
|
1623
|
+
type: 'array',
|
|
1624
|
+
items: {
|
|
1625
|
+
type: 'string',
|
|
1626
|
+
format: 'uri',
|
|
1627
|
+
maxLength: 2048,
|
|
1628
|
+
},
|
|
1629
|
+
maxLength: 20,
|
|
1630
|
+
description: 'URIs to semantically equivalent concepts in external ontologies or taxonomies (e.g., Wikidata QIDs, ENVO terms, SDG targets). Used for interoperability, not as documentation.',
|
|
1192
1631
|
},
|
|
1193
|
-
|
|
1632
|
+
referenceDocument: {
|
|
1194
1633
|
type: 'union',
|
|
1195
1634
|
refs: [
|
|
1196
1635
|
'lex:org.hypercerts.defs#uri',
|
|
1197
1636
|
'lex:org.hypercerts.defs#smallBlob',
|
|
1198
1637
|
],
|
|
1199
|
-
description: '
|
|
1638
|
+
description: 'Link to a governance or reference document where this work scope tag is defined and further explained.',
|
|
1639
|
+
},
|
|
1640
|
+
createdAt: {
|
|
1641
|
+
type: 'string',
|
|
1642
|
+
format: 'datetime',
|
|
1643
|
+
description: 'Client-declared timestamp when this record was originally created.',
|
|
1200
1644
|
},
|
|
1201
1645
|
},
|
|
1202
1646
|
},
|
|
@@ -1215,6 +1659,7 @@ function validate(v, id, hash, requiredType) {
|
|
|
1215
1659
|
};
|
|
1216
1660
|
}
|
|
1217
1661
|
const ids = {
|
|
1662
|
+
AppCertifiedActorOrganization: 'app.certified.actor.organization',
|
|
1218
1663
|
AppCertifiedActorProfile: 'app.certified.actor.profile',
|
|
1219
1664
|
AppCertifiedBadgeAward: 'app.certified.badge.award',
|
|
1220
1665
|
AppCertifiedBadgeDefinition: 'app.certified.badge.definition',
|
|
@@ -1222,17 +1667,21 @@ const ids = {
|
|
|
1222
1667
|
AppCertifiedDefs: 'app.certified.defs',
|
|
1223
1668
|
AppCertifiedLocation: 'app.certified.location',
|
|
1224
1669
|
ComAtprotoRepoStrongRef: 'com.atproto.repo.strongRef',
|
|
1670
|
+
OrgHyperboardsBoard: 'org.hyperboards.board',
|
|
1671
|
+
OrgHyperboardsDisplayProfile: 'org.hyperboards.displayProfile',
|
|
1225
1672
|
OrgHypercertsClaimActivity: 'org.hypercerts.claim.activity',
|
|
1226
|
-
|
|
1227
|
-
OrgHypercertsClaimCollection: 'org.hypercerts.claim.collection',
|
|
1228
|
-
OrgHypercertsClaimContributionDetails: 'org.hypercerts.claim.contributionDetails',
|
|
1673
|
+
OrgHypercertsClaimContribution: 'org.hypercerts.claim.contribution',
|
|
1229
1674
|
OrgHypercertsClaimContributorInformation: 'org.hypercerts.claim.contributorInformation',
|
|
1230
|
-
OrgHypercertsClaimEvaluation: 'org.hypercerts.claim.evaluation',
|
|
1231
|
-
OrgHypercertsClaimMeasurement: 'org.hypercerts.claim.measurement',
|
|
1232
1675
|
OrgHypercertsClaimRights: 'org.hypercerts.claim.rights',
|
|
1676
|
+
OrgHypercertsCollection: 'org.hypercerts.collection',
|
|
1677
|
+
OrgHypercertsContextAcknowledgement: 'org.hypercerts.context.acknowledgement',
|
|
1678
|
+
OrgHypercertsContextAttachment: 'org.hypercerts.context.attachment',
|
|
1679
|
+
OrgHypercertsContextEvaluation: 'org.hypercerts.context.evaluation',
|
|
1680
|
+
OrgHypercertsContextMeasurement: 'org.hypercerts.context.measurement',
|
|
1233
1681
|
OrgHypercertsDefs: 'org.hypercerts.defs',
|
|
1234
1682
|
OrgHypercertsFundingReceipt: 'org.hypercerts.funding.receipt',
|
|
1235
|
-
|
|
1683
|
+
OrgHypercertsWorkscopeCel: 'org.hypercerts.workscope.cel',
|
|
1684
|
+
OrgHypercertsWorkscopeTag: 'org.hypercerts.workscope.tag',
|
|
1236
1685
|
};
|
|
1237
1686
|
|
|
1238
1687
|
exports.ids = ids;
|