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