@hypercerts-org/lexicon 0.10.0-beta.12 → 0.10.0-beta.14
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 +136 -0
- package/README.md +142 -0
- package/SCHEMAS.md +220 -67
- package/dist/exports.d.ts +195 -66
- package/dist/exports.d.ts.map +1 -1
- package/dist/generated/exports.d.ts +195 -66
- package/dist/generated/exports.d.ts.map +1 -1
- package/dist/generated/lexicons.d.ts +378 -130
- package/dist/generated/lexicons.d.ts.map +1 -1
- package/dist/generated/types/app/certified/actor/profile.d.ts +27 -0
- package/dist/generated/types/app/certified/actor/profile.d.ts.map +1 -0
- package/dist/generated/types/app/certified/defs.d.ts +11 -1
- package/dist/generated/types/app/certified/defs.d.ts.map +1 -1
- package/dist/generated/types/app/certified/location.d.ts +9 -1
- package/dist/generated/types/app/certified/location.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/claim/activity.d.ts +21 -3
- package/dist/generated/types/org/hypercerts/claim/activity.d.ts.map +1 -1
- package/dist/generated/types/org/hypercerts/claim/attachment.d.ts +37 -0
- package/dist/generated/types/org/hypercerts/claim/attachment.d.ts.map +1 -0
- package/dist/index.cjs +618 -270
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +606 -262
- package/dist/index.mjs.map +1 -1
- package/dist/lexicons.cjs +200 -68
- package/dist/lexicons.cjs.map +1 -1
- package/dist/lexicons.d.ts +378 -130
- package/dist/lexicons.d.ts.map +1 -1
- package/dist/lexicons.mjs +200 -68
- package/dist/lexicons.mjs.map +1 -1
- package/dist/types/app/certified/actor/profile.d.ts +27 -0
- package/dist/types/app/certified/actor/profile.d.ts.map +1 -0
- package/dist/types/app/certified/defs.d.ts +11 -1
- package/dist/types/app/certified/defs.d.ts.map +1 -1
- package/dist/types/app/certified/location.d.ts +9 -1
- package/dist/types/app/certified/location.d.ts.map +1 -1
- package/dist/types/org/hypercerts/claim/activity.d.ts +21 -3
- package/dist/types/org/hypercerts/claim/activity.d.ts.map +1 -1
- package/dist/types/org/hypercerts/claim/attachment.d.ts +37 -0
- package/dist/types/org/hypercerts/claim/attachment.d.ts.map +1 -0
- package/lexicons/app/certified/actor/profile.json +51 -0
- package/lexicons/app/certified/defs.json +11 -3
- package/lexicons/app/certified/location.json +16 -2
- package/lexicons/org/hypercerts/claim/activity.json +31 -8
- package/lexicons/org/hypercerts/claim/attachment.json +86 -0
- package/package.json +1 -1
- package/dist/generated/types/org/hypercerts/claim/evidence.d.ts +0 -29
- package/dist/generated/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
- package/dist/types/org/hypercerts/claim/evidence.d.ts +0 -29
- package/dist/types/org/hypercerts/claim/evidence.d.ts.map +0 -1
- package/lexicons/org/hypercerts/claim/evidence.json +0 -57
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,141 @@
|
|
|
1
1
|
# @hypercerts-org/lexicon
|
|
2
2
|
|
|
3
|
+
## 0.10.0-beta.14
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#133](https://github.com/hypercerts-org/hypercerts-lexicon/pull/133) [`6752cad`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/6752cad3c9e58b9a8e1a3ca17f2ea7a4a68dba81) Thanks [@Kzoeps](https://github.com/Kzoeps)! - Add profile lexicon for Hypercert account profiles with support for display name, description, pronouns, website, avatar, banner.
|
|
8
|
+
|
|
9
|
+
- [#132](https://github.com/hypercerts-org/hypercerts-lexicon/pull/132) [`da481e0`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/da481e09f5bd1a8e62e388f2c6001896d76b1fbf) Thanks [@aspiers](https://github.com/aspiers)! - Convert app.certified.defs#did to object type
|
|
10
|
+
|
|
11
|
+
The did definition in app.certified.defs has been converted from a primitive
|
|
12
|
+
string type to an object type to comply with the ATProto specification
|
|
13
|
+
requirement that all union variants must be object or record types.
|
|
14
|
+
|
|
15
|
+
This change was necessary because app.certified.badge.award uses this
|
|
16
|
+
definition in a union for the subject property.
|
|
17
|
+
|
|
18
|
+
Breaking changes:
|
|
19
|
+
- `app.certified.defs#did`: Now an object with `did` string property (maxLength 256)
|
|
20
|
+
- Code using this type must now access the `.did` property instead of using the value directly
|
|
21
|
+
|
|
22
|
+
- [#132](https://github.com/hypercerts-org/hypercerts-lexicon/pull/132) [`e134b26`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/e134b26c43a70c0a9ae04cc12b8a3bd05990c470) Thanks [@aspiers](https://github.com/aspiers)! - Convert union string definitions to object types in activity lexicon
|
|
23
|
+
|
|
24
|
+
The contributorIdentity, contributorRole, and workScopeString definitions
|
|
25
|
+
in org.hypercerts.claim.activity have been converted from primitive string
|
|
26
|
+
types to object types to comply with the ATProto specification requirement
|
|
27
|
+
that all union variants must be object or record types.
|
|
28
|
+
|
|
29
|
+
Additionally, maximum length constraints have been reduced to more reasonable
|
|
30
|
+
values:
|
|
31
|
+
- `contributorIdentity.identity`: maxLength 1000, maxGraphemes 100 (previously no limits)
|
|
32
|
+
- `contributorRole.role`: maxLength 1000, maxGraphemes 100 (previously maxLength 10000, maxGraphemes 1000)
|
|
33
|
+
- `workScopeString.scope`: maxLength 1000, maxGraphemes 100 (previously maxLength 10000, maxGraphemes 1000)
|
|
34
|
+
|
|
35
|
+
Breaking changes:
|
|
36
|
+
- `contributorIdentity`: Now an object with `identity` string property
|
|
37
|
+
- `contributorRole`: Now an object with `role` string property
|
|
38
|
+
- `workScopeString`: Now an object with `scope` string property
|
|
39
|
+
- Reduced maximum lengths may affect existing records with longer values
|
|
40
|
+
|
|
41
|
+
This requires updating code that uses these union types to access the nested
|
|
42
|
+
property instead of using the value directly.
|
|
43
|
+
|
|
44
|
+
- [#135](https://github.com/hypercerts-org/hypercerts-lexicon/pull/135) [`806cfbc`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/806cfbca7cbcd3674a5f8e97a6b6dd87ba806c08) Thanks [@Kzoeps](https://github.com/Kzoeps)! - Move profile lexicon from app.certified.profile to app.certified.actor.profile namespace, requiring migration of existing profile records
|
|
45
|
+
|
|
46
|
+
## 0.10.0-beta.13
|
|
47
|
+
|
|
48
|
+
### Minor Changes
|
|
49
|
+
|
|
50
|
+
- [#131](https://github.com/hypercerts-org/hypercerts-lexicon/pull/131) [`7f42fad`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/7f42fad517e191dad6db22fc67ec8346ec167f5c) Thanks [@aspiers](https://github.com/aspiers)! - Add inline string format to app.certified.location schema with documentation and examples
|
|
51
|
+
|
|
52
|
+
- [#118](https://github.com/hypercerts-org/hypercerts-lexicon/pull/118) [`8427780`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/8427780888759ee749a683528f49e6b0da2b97c2) Thanks [@holkexyz](https://github.com/holkexyz)! - Rename evidence lexicon to attachment and refactor schema structure
|
|
53
|
+
|
|
54
|
+
**Breaking Changes:**
|
|
55
|
+
- **Lexicon ID change:**
|
|
56
|
+
- `org.hypercerts.claim.evidence` → `org.hypercerts.claim.attachment`
|
|
57
|
+
- All existing evidence records must be migrated to use the new lexicon ID
|
|
58
|
+
- **Schema structure changes (`org.hypercerts.claim.attachment`):**
|
|
59
|
+
- Changed `subject` (single strongRef) to `subjects` (array of strongRefs, maxLength: 100)
|
|
60
|
+
- Changed `content` from single union (uri/blob) to array of unions (maxLength: 100)
|
|
61
|
+
- Added `contentType` field (string, maxLength: 64) to specify attachment type
|
|
62
|
+
- Removed `relationType` field (previously used to indicate supports/challenges/clarifies)
|
|
63
|
+
- Removed `contributors` field
|
|
64
|
+
- Removed `locations` field
|
|
65
|
+
- Added rich text support: `shortDescriptionFacets` and `descriptionFacets` (arrays of `app.bsky.richtext.facet`)
|
|
66
|
+
- Updated required fields: `["title", "content", "createdAt"]` (content is now required)
|
|
67
|
+
- **Common definitions (`org.hypercerts.defs`):**
|
|
68
|
+
- Added `weightedContributor` def for contributor references with optional weights
|
|
69
|
+
- Added `contributorIdentity` def for string-based contributor identification
|
|
70
|
+
|
|
71
|
+
**Migration:**
|
|
72
|
+
|
|
73
|
+
**Lexicon ID:** Update all references from `org.hypercerts.claim.evidence` to `org.hypercerts.claim.attachment`.
|
|
74
|
+
|
|
75
|
+
**Schema migration:**
|
|
76
|
+
|
|
77
|
+
```json
|
|
78
|
+
// Before (org.hypercerts.claim.evidence)
|
|
79
|
+
{
|
|
80
|
+
"$type": "org.hypercerts.claim.evidence",
|
|
81
|
+
"subject": { "uri": "...", "cid": "..." },
|
|
82
|
+
"content": { "uri": "https://..." },
|
|
83
|
+
"title": "Evidence Title",
|
|
84
|
+
"relationType": "supports",
|
|
85
|
+
"createdAt": "..."
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
// After (org.hypercerts.claim.attachment)
|
|
89
|
+
{
|
|
90
|
+
"$type": "org.hypercerts.claim.attachment",
|
|
91
|
+
"subjects": [{ "uri": "...", "cid": "..." }],
|
|
92
|
+
"content": [{ "uri": "https://..." }],
|
|
93
|
+
"contentType": "evidence",
|
|
94
|
+
"title": "Evidence Title",
|
|
95
|
+
"createdAt": "..."
|
|
96
|
+
}
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
**Field mapping:**
|
|
100
|
+
- `subject` → `subjects` (wrap in array)
|
|
101
|
+
- `content` (single) → `content` (array, wrap existing value)
|
|
102
|
+
- `relationType` → remove (no direct replacement)
|
|
103
|
+
- `contributors` → remove (no direct replacement)
|
|
104
|
+
- `locations` → remove (no direct replacement)
|
|
105
|
+
|
|
106
|
+
### Patch Changes
|
|
107
|
+
|
|
108
|
+
- [#118](https://github.com/hypercerts-org/hypercerts-lexicon/pull/118) [`8427780`](https://github.com/hypercerts-org/hypercerts-lexicon/commit/8427780888759ee749a683528f49e6b0da2b97c2) Thanks [@holkexyz](https://github.com/holkexyz)! - Add location property to attachment schema
|
|
109
|
+
|
|
110
|
+
**New Feature:**
|
|
111
|
+
- **`location` field** (`org.hypercerts.claim.attachment`):
|
|
112
|
+
- Added optional `location` property as a strong reference (`com.atproto.repo.strongRef`)
|
|
113
|
+
- Allows attachments to associate location metadata directly without using the sidecar pattern
|
|
114
|
+
- The referenced record must conform to the `app.certified.location` lexicon
|
|
115
|
+
|
|
116
|
+
**Usage:**
|
|
117
|
+
|
|
118
|
+
```json
|
|
119
|
+
{
|
|
120
|
+
"$type": "org.hypercerts.claim.attachment",
|
|
121
|
+
"subjects": [
|
|
122
|
+
{
|
|
123
|
+
"uri": "at://did:plc:.../org.hypercerts.claim.activity/...",
|
|
124
|
+
"cid": "..."
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"content": [{ "uri": "https://..." }],
|
|
128
|
+
"title": "Field Report",
|
|
129
|
+
"location": {
|
|
130
|
+
"uri": "at://did:plc:.../app.certified.location/abc123",
|
|
131
|
+
"cid": "..."
|
|
132
|
+
},
|
|
133
|
+
"createdAt": "..."
|
|
134
|
+
}
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
This change aligns with the location property addition to collections (PR #123), providing a consistent pattern for associating location metadata across record types.
|
|
138
|
+
|
|
3
139
|
## 0.10.0-beta.12
|
|
4
140
|
|
|
5
141
|
### Minor Changes
|
package/README.md
CHANGED
|
@@ -89,6 +89,95 @@ await agent.api.com.atproto.repo.createRecord({
|
|
|
89
89
|
});
|
|
90
90
|
```
|
|
91
91
|
|
|
92
|
+
### Creating Location Records
|
|
93
|
+
|
|
94
|
+
Location records (`app.certified.location`) specify where work was performed
|
|
95
|
+
using geographic coordinates or other location formats. They can be referenced
|
|
96
|
+
by activities, collections, attachments, measurements, and evaluations.
|
|
97
|
+
|
|
98
|
+
```typescript
|
|
99
|
+
import { LOCATION_NSID } from "@hypercerts-org/lexicon";
|
|
100
|
+
|
|
101
|
+
const locationRecord = {
|
|
102
|
+
$type: LOCATION_NSID,
|
|
103
|
+
lpVersion: "1.0", // Location Protocol version
|
|
104
|
+
srs: "http://www.opengis.net/def/crs/OGC/1.3/CRS84", // Spatial Reference System
|
|
105
|
+
locationType: "coordinate-decimal", // or "geojson-point"
|
|
106
|
+
location: {
|
|
107
|
+
uri: "https://example.com/location-data.geojson",
|
|
108
|
+
},
|
|
109
|
+
// Optional fields
|
|
110
|
+
name: "Project Site A",
|
|
111
|
+
description: "Primary research facility in the Amazon rainforest",
|
|
112
|
+
createdAt: new Date().toISOString(),
|
|
113
|
+
};
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
- `lpVersion` (required): Version of the Location Protocol specification
|
|
117
|
+
- `srs` (required): Spatial Reference System URI defining the coordinate system
|
|
118
|
+
- `locationType` (required): Format identifier (e.g., "coordinate-decimal", "geojson-point")
|
|
119
|
+
- `location` (required): Location data as URI, blob, or string
|
|
120
|
+
- `name` (optional): Human-readable name for the location
|
|
121
|
+
- `description` (optional): Additional context about the location
|
|
122
|
+
- `createdAt` (required): Timestamp when the record was created
|
|
123
|
+
|
|
124
|
+
**Location data formats:**
|
|
125
|
+
|
|
126
|
+
The `location` field accepts three formats:
|
|
127
|
+
|
|
128
|
+
1. **URI reference**: `{ uri: "https://..." }` - Link to external location data
|
|
129
|
+
2. **Small blob**: Embedded location data (up to 10MB)
|
|
130
|
+
3. **Location string**: Inline string wrapped in an object, containing coordinates or GeoJSON
|
|
131
|
+
|
|
132
|
+
```typescript
|
|
133
|
+
// Example with embedded blob
|
|
134
|
+
const locationWithBlob = {
|
|
135
|
+
$type: LOCATION_NSID,
|
|
136
|
+
lpVersion: "1.0",
|
|
137
|
+
srs: "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
|
|
138
|
+
locationType: "geojson-point",
|
|
139
|
+
location: {
|
|
140
|
+
blob: {
|
|
141
|
+
$type: "blob",
|
|
142
|
+
ref: {
|
|
143
|
+
$link: "bafyrei...", // CID of the uploaded blob
|
|
144
|
+
},
|
|
145
|
+
mimeType: "application/geo+json",
|
|
146
|
+
size: 123,
|
|
147
|
+
},
|
|
148
|
+
},
|
|
149
|
+
name: "Amazon Research Station",
|
|
150
|
+
createdAt: new Date().toISOString(),
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
// Example with inline string (coordinates)
|
|
154
|
+
const locationWithCoordinates = {
|
|
155
|
+
$type: LOCATION_NSID,
|
|
156
|
+
lpVersion: "1.0",
|
|
157
|
+
srs: "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
|
|
158
|
+
locationType: "coordinate-decimal",
|
|
159
|
+
location: {
|
|
160
|
+
string: "-3.4653, -62.2159", // lat, lon
|
|
161
|
+
},
|
|
162
|
+
name: "Amazon Research Site",
|
|
163
|
+
description: "Field station coordinates",
|
|
164
|
+
createdAt: new Date().toISOString(),
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// Example with inline GeoJSON string
|
|
168
|
+
const locationWithGeoJSON = {
|
|
169
|
+
$type: LOCATION_NSID,
|
|
170
|
+
lpVersion: "1.0",
|
|
171
|
+
srs: "http://www.opengis.net/def/crs/OGC/1.3/CRS84",
|
|
172
|
+
locationType: "geojson-point",
|
|
173
|
+
location: {
|
|
174
|
+
string: '{"type":"Point","coordinates":[-62.2159,-3.4653]}',
|
|
175
|
+
},
|
|
176
|
+
name: "Research Station Alpha",
|
|
177
|
+
createdAt: new Date().toISOString(),
|
|
178
|
+
};
|
|
179
|
+
```
|
|
180
|
+
|
|
92
181
|
### Accessing NSIDs (Lexicon IDs)
|
|
93
182
|
|
|
94
183
|
**Recommended**: Use individual NSID constants for cleaner, more readable code:
|
|
@@ -322,3 +411,56 @@ const collectionRecord = {
|
|
|
322
411
|
```
|
|
323
412
|
|
|
324
413
|
The `location` field is a strong reference to an `app.certified.location` record containing the same `uri` and `cid` fields as described above for activities.
|
|
414
|
+
|
|
415
|
+
### Creating Attachments
|
|
416
|
+
|
|
417
|
+
Attachments provide commentary, context, evidence, or documentary material
|
|
418
|
+
related to hypercert records. They can be linked to activities, evaluations,
|
|
419
|
+
measurements, or even other attachments:
|
|
420
|
+
|
|
421
|
+
```typescript
|
|
422
|
+
import { ATTACHMENT_NSID } from "@hypercerts-org/lexicon";
|
|
423
|
+
|
|
424
|
+
const attachmentRecord = {
|
|
425
|
+
$type: ATTACHMENT_NSID,
|
|
426
|
+
title: "Field Survey Report",
|
|
427
|
+
subjects: [
|
|
428
|
+
{
|
|
429
|
+
uri: "at://did:plc:alice/org.hypercerts.claim.activity/abc123",
|
|
430
|
+
cid: "...",
|
|
431
|
+
},
|
|
432
|
+
],
|
|
433
|
+
contentType: "report",
|
|
434
|
+
content: [
|
|
435
|
+
{ uri: "https://example.com/reports/survey-2024.pdf" },
|
|
436
|
+
{ uri: "ipfs://Qm..." },
|
|
437
|
+
],
|
|
438
|
+
shortDescription: "Quarterly field survey documenting project progress",
|
|
439
|
+
createdAt: new Date().toISOString(),
|
|
440
|
+
};
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
**Key fields:**
|
|
444
|
+
|
|
445
|
+
- `title` (required): String title for the attachment
|
|
446
|
+
- `shortDescription`/`description`: Support rich text via facet annotations
|
|
447
|
+
- `subjects` (optional): Array of strong references to records this attachment relates to
|
|
448
|
+
- `contentType` (optional): Type descriptor (e.g., "report", "audit", "evidence", "testimonial")
|
|
449
|
+
- `content` (required): Array of URIs or blobs containing the attachment files
|
|
450
|
+
- `location` (optional): Strong reference to an `app.certified.location` record
|
|
451
|
+
- `createdAt` (required): Timestamp when the attachment was created
|
|
452
|
+
|
|
453
|
+
**Adding Location to Attachments:**
|
|
454
|
+
|
|
455
|
+
```typescript
|
|
456
|
+
const attachmentWithLocation = {
|
|
457
|
+
$type: ATTACHMENT_NSID,
|
|
458
|
+
title: "Site Inspection Photos",
|
|
459
|
+
content: [{ uri: "https://..." }],
|
|
460
|
+
location: {
|
|
461
|
+
uri: "at://did:plc:alice/app.certified.location/loc123",
|
|
462
|
+
cid: "...",
|
|
463
|
+
},
|
|
464
|
+
createdAt: new Date().toISOString(),
|
|
465
|
+
};
|
|
466
|
+
```
|
package/SCHEMAS.md
CHANGED
|
@@ -33,7 +33,7 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
33
33
|
|
|
34
34
|
#### Defs
|
|
35
35
|
|
|
36
|
-
##### contributor
|
|
36
|
+
##### `org.hypercerts.claim.activity#contributor`
|
|
37
37
|
|
|
38
38
|
| Property | Type | Required | Description |
|
|
39
39
|
| --------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
@@ -41,6 +41,113 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
41
41
|
| `contributionWeight` | `string` | ❌ | The relative weight/importance of this contribution (stored as a string to avoid float precision issues). Must be a positive numeric value. Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed. |
|
|
42
42
|
| `contributionDetails` | `union` | ❌ | Contribution details as a string via org.hypercerts.claim.activity#contributorRole, or a strong reference to a contribution details record. |
|
|
43
43
|
|
|
44
|
+
##### `org.hypercerts.claim.activity#contributorIdentity`
|
|
45
|
+
|
|
46
|
+
| Property | Type | Required | Description |
|
|
47
|
+
| ---------- | -------- | -------- | ---------------------------------------------------- |
|
|
48
|
+
| `identity` | `string` | ✅ | The contributor identity string (DID or identifier). |
|
|
49
|
+
|
|
50
|
+
##### `org.hypercerts.claim.activity#contributorRole`
|
|
51
|
+
|
|
52
|
+
| Property | Type | Required | Description |
|
|
53
|
+
| -------- | -------- | -------- | --------------------------------- |
|
|
54
|
+
| `role` | `string` | ✅ | The contribution role or details. |
|
|
55
|
+
|
|
56
|
+
##### `org.hypercerts.claim.activity#workScopeString`
|
|
57
|
+
|
|
58
|
+
| Property | Type | Required | Description |
|
|
59
|
+
| -------- | -------- | -------- | ---------------------------------- |
|
|
60
|
+
| `scope` | `string` | ✅ | The work scope description string. |
|
|
61
|
+
|
|
62
|
+
---
|
|
63
|
+
|
|
64
|
+
### `org.hypercerts.claim.attachment`
|
|
65
|
+
|
|
66
|
+
**Description:** An attachment providing commentary, context, evidence, or documentary material related to a hypercert record (e.g. an activity, project, claim, or evaluation).
|
|
67
|
+
|
|
68
|
+
**Key:** `tid`
|
|
69
|
+
|
|
70
|
+
#### Properties
|
|
71
|
+
|
|
72
|
+
| Property | Type | Required | Description | Comments |
|
|
73
|
+
| ------------------------ | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------ |
|
|
74
|
+
| `subjects` | `ref` | ❌ | References to the subject(s) the attachment is connected to—this may be an activity claim, outcome claim, measurement, evaluation, or even another attachment. This is optional as the attachment can exist before the claim is recorded. | maxLength: 100 |
|
|
75
|
+
| `contentType` | `string` | ❌ | The type of attachment, e.g. report, audit, evidence, testimonial, methodology, etc. | maxLength: 64 |
|
|
76
|
+
| `content` | `union` | ✅ | The files, documents, or external references included in this attachment record. | maxLength: 100 |
|
|
77
|
+
| `title` | `string` | ✅ | Title of this attachment. | maxLength: 256 |
|
|
78
|
+
| `shortDescription` | `string` | ❌ | Short summary of this attachment, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`. | maxLength: 3000, maxGraphemes: 300 |
|
|
79
|
+
| `shortDescriptionFacets` | `ref` | ❌ | Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc). | |
|
|
80
|
+
| `description` | `string` | ❌ | Optional longer description of this attachment, including context or interpretation. Rich text annotations may be provided via `descriptionFacets`. | maxLength: 30000, maxGraphemes: 3000 |
|
|
81
|
+
| `descriptionFacets` | `ref` | ❌ | Rich text annotations for `description` (mentions, URLs, hashtags, etc). | |
|
|
82
|
+
| `location` | `ref` | ❌ | A strong reference to the location where this attachment's subject matter occurred. The record referenced must conform with the lexicon app.certified.location. | |
|
|
83
|
+
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
### `org.hypercerts.claim.collection`
|
|
88
|
+
|
|
89
|
+
**Description:** A collection/group of items (activities and/or other collections). Collections support recursive nesting.
|
|
90
|
+
|
|
91
|
+
**Key:** `tid`
|
|
92
|
+
|
|
93
|
+
#### Properties
|
|
94
|
+
|
|
95
|
+
| Property | Type | Required | Description | Comments |
|
|
96
|
+
| ------------------ | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
|
|
97
|
+
| `type` | `string` | ❌ | The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection. | |
|
|
98
|
+
| `title` | `string` | ✅ | The title of this collection | maxLength: 800, maxGraphemes: 80 |
|
|
99
|
+
| `shortDescription` | `string` | ❌ | Short summary of this collection, suitable for previews and list views | maxLength: 3000, maxGraphemes: 300 |
|
|
100
|
+
| `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
|
|
101
|
+
| `avatar` | `union` | ❌ | The collection's avatar/profile image as a URI or image blob. | |
|
|
102
|
+
| `banner` | `union` | ❌ | Larger horizontal image to display behind the collection view. | |
|
|
103
|
+
| `items` | `ref` | ✅ | Array of items in this collection with optional weights. | |
|
|
104
|
+
| `location` | `ref` | ❌ | A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location. | |
|
|
105
|
+
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
|
|
106
|
+
|
|
107
|
+
#### Defs
|
|
108
|
+
|
|
109
|
+
##### `org.hypercerts.claim.collection#item`
|
|
110
|
+
|
|
111
|
+
| Property | Type | Required | Description |
|
|
112
|
+
| ---------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
113
|
+
| `itemIdentifier` | `ref` | ✅ | Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection). |
|
|
114
|
+
| `itemWeight` | `string` | ❌ | Optional weight for this item (positive numeric value stored as string). Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed. |
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
### `org.hypercerts.claim.contributionDetails`
|
|
119
|
+
|
|
120
|
+
**Description:** Details about a specific contribution including role, description, and timeframe.
|
|
121
|
+
|
|
122
|
+
**Key:** `tid`
|
|
123
|
+
|
|
124
|
+
#### Properties
|
|
125
|
+
|
|
126
|
+
| Property | Type | Required | Description | Comments |
|
|
127
|
+
| ------------------------- | -------- | -------- | ------------------------------------------------------------------------------------ | ------------------------------------ |
|
|
128
|
+
| `role` | `string` | ❌ | Role or title of the contributor. | maxLength: 100 |
|
|
129
|
+
| `contributionDescription` | `string` | ❌ | What the contribution concretely was. | maxLength: 10000, maxGraphemes: 1000 |
|
|
130
|
+
| `startDate` | `string` | ❌ | When this contribution started. This should be a subset of the hypercert timeframe. | |
|
|
131
|
+
| `endDate` | `string` | ❌ | When this contribution finished. This should be a subset of the hypercert timeframe. | |
|
|
132
|
+
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
### `org.hypercerts.claim.contributorInformation`
|
|
137
|
+
|
|
138
|
+
**Description:** Contributor information including identifier, display name, and image.
|
|
139
|
+
|
|
140
|
+
**Key:** `tid`
|
|
141
|
+
|
|
142
|
+
#### Properties
|
|
143
|
+
|
|
144
|
+
| Property | Type | Required | Description | Comments |
|
|
145
|
+
| ------------- | -------- | -------- | ------------------------------------------------------------------ | -------------- |
|
|
146
|
+
| `identifier` | `string` | ❌ | DID or a URI to a social profile of the contributor. | |
|
|
147
|
+
| `displayName` | `string` | ❌ | Display name of the contributor. | maxLength: 100 |
|
|
148
|
+
| `image` | `union` | ❌ | The contributor visual representation as a URI or image blob. | |
|
|
149
|
+
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created. | |
|
|
150
|
+
|
|
44
151
|
---
|
|
45
152
|
|
|
46
153
|
### `org.hypercerts.claim.evaluation`
|
|
@@ -64,7 +171,7 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
64
171
|
|
|
65
172
|
#### Defs
|
|
66
173
|
|
|
67
|
-
##### score
|
|
174
|
+
##### `org.hypercerts.claim.evaluation#score`
|
|
68
175
|
|
|
69
176
|
| Property | Type | Required | Description |
|
|
70
177
|
| -------- | --------- | -------- | -------------------------------------------- |
|
|
@@ -74,26 +181,6 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
74
181
|
|
|
75
182
|
---
|
|
76
183
|
|
|
77
|
-
### `org.hypercerts.claim.evidence`
|
|
78
|
-
|
|
79
|
-
**Description:** A piece of evidence related to a hypercert record (e.g. an activity, project, claim, or evaluation). Evidence may support, clarify, or challenge the referenced subject.
|
|
80
|
-
|
|
81
|
-
**Key:** `tid`
|
|
82
|
-
|
|
83
|
-
#### Properties
|
|
84
|
-
|
|
85
|
-
| Property | Type | Required | Description | Comments |
|
|
86
|
-
| ------------------ | -------- | -------- | ------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
|
|
87
|
-
| `subject` | `ref` | ❌ | A strong reference to the record this evidence relates to (e.g. an activity, project, claim, or evaluation). | |
|
|
88
|
-
| `content` | `union` | ✅ | A piece of evidence (URI or blob) related to the subject record; it may support, clarify, or challenge a hypercert claim. | |
|
|
89
|
-
| `title` | `string` | ✅ | Title to describe the nature of the evidence. | maxLength: 256 |
|
|
90
|
-
| `shortDescription` | `string` | ❌ | Short description explaining what this evidence shows. | maxLength: 3000, maxGraphemes: 300 |
|
|
91
|
-
| `description` | `string` | ❌ | Longer description describing the evidence in more detail. | maxLength: 30000, maxGraphemes: 3000 |
|
|
92
|
-
| `relationType` | `string` | ❌ | How this evidence relates to the subject. | Known values: `supports`, `challenges`, `clarifies` |
|
|
93
|
-
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
|
|
94
|
-
|
|
95
|
-
---
|
|
96
|
-
|
|
97
184
|
### `org.hypercerts.claim.measurement`
|
|
98
185
|
|
|
99
186
|
**Description:** Measurement data related to a hypercert record (e.g. an activity and its impact).
|
|
@@ -121,37 +208,6 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
121
208
|
|
|
122
209
|
---
|
|
123
210
|
|
|
124
|
-
### `org.hypercerts.claim.collection`
|
|
125
|
-
|
|
126
|
-
**Description:** A collection/group of items (activities and/or other collections). Collections support recursive nesting.
|
|
127
|
-
|
|
128
|
-
**Key:** `tid`
|
|
129
|
-
|
|
130
|
-
#### Properties
|
|
131
|
-
|
|
132
|
-
| Property | Type | Required | Description | Comments |
|
|
133
|
-
| ------------------ | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------- |
|
|
134
|
-
| `type` | `string` | ❌ | The type of this collection. Possible fields can be 'favorites', 'project', or any other type of collection. | |
|
|
135
|
-
| `title` | `string` | ✅ | The title of this collection | maxLength: 800, maxGraphemes: 80 |
|
|
136
|
-
| `shortDescription` | `string` | ❌ | Short summary of this collection, suitable for previews and list views | maxLength: 3000, maxGraphemes: 300 |
|
|
137
|
-
| `description` | `ref` | ❌ | Rich-text description, represented as a Leaflet linear document. | |
|
|
138
|
-
| `avatar` | `union` | ❌ | The collection's avatar/profile image as a URI or image blob. | |
|
|
139
|
-
| `banner` | `union` | ❌ | Larger horizontal image to display behind the collection view. | |
|
|
140
|
-
| `items` | `ref` | ✅ | Array of items in this collection with optional weights. | |
|
|
141
|
-
| `location` | `ref` | ❌ | A strong reference to the location where this collection's activities were performed. The record referenced must conform with the lexicon app.certified.location. | |
|
|
142
|
-
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
|
|
143
|
-
|
|
144
|
-
#### Defs
|
|
145
|
-
|
|
146
|
-
##### item
|
|
147
|
-
|
|
148
|
-
| Property | Type | Required | Description |
|
|
149
|
-
| ---------------- | -------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
150
|
-
| `itemIdentifier` | `ref` | ✅ | Strong reference to an item in this collection. Items can be activities (org.hypercerts.claim.activity) and/or other collections (org.hypercerts.claim.collection). |
|
|
151
|
-
| `itemWeight` | `string` | ❌ | Optional weight for this item (positive numeric value stored as string). Weights do not need to sum to a specific total; normalization can be performed by the consuming application as needed. |
|
|
152
|
-
|
|
153
|
-
---
|
|
154
|
-
|
|
155
211
|
### `org.hypercerts.claim.rights`
|
|
156
212
|
|
|
157
213
|
**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.
|
|
@@ -194,26 +250,31 @@ Hypercerts-specific lexicons for tracking impact work and claims.
|
|
|
194
250
|
|
|
195
251
|
---
|
|
196
252
|
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
Certified lexicons are common/shared lexicons that can be used across multiple protocols.
|
|
253
|
+
### `org.hypercerts.helper.workScopeTag`
|
|
200
254
|
|
|
201
|
-
|
|
255
|
+
**Description:** A reusable scope atom for work scope logic expressions. Scopes can represent topics, languages, domains, deliverables, methods, regions, tags, or other categorical labels.
|
|
202
256
|
|
|
203
|
-
**
|
|
257
|
+
**Key:** `tid`
|
|
204
258
|
|
|
205
|
-
####
|
|
259
|
+
#### Properties
|
|
206
260
|
|
|
207
|
-
|
|
|
208
|
-
|
|
|
209
|
-
| `
|
|
210
|
-
| `
|
|
211
|
-
| `
|
|
212
|
-
| `
|
|
213
|
-
| `
|
|
261
|
+
| Property | Type | Required | Description | Comments |
|
|
262
|
+
| ------------------- | -------- | -------- | ------------------------------------------------------------------------------------------------ | ------------------------------------ |
|
|
263
|
+
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
|
|
264
|
+
| `key` | `string` | ✅ | Lowercase, hyphenated machine-readable key for this scope (e.g., 'ipfs', 'go-lang', 'filecoin'). | maxLength: 120 |
|
|
265
|
+
| `label` | `string` | ✅ | Human-readable label for this scope. | maxLength: 200 |
|
|
266
|
+
| `kind` | `string` | ❌ | Category type of this scope. Recommended values: topic, language, domain, method, tag. | maxLength: 50 |
|
|
267
|
+
| `description` | `string` | ❌ | Optional longer description of this scope. | maxLength: 10000, maxGraphemes: 1000 |
|
|
268
|
+
| `parent` | `ref` | ❌ | Optional strong reference to a parent scope record for taxonomy/hierarchy support. | |
|
|
269
|
+
| `aliases` | `string` | ❌ | Optional array of alternative names or identifiers for this scope. | maxLength: 50 |
|
|
270
|
+
| `externalReference` | `union` | ❌ | Optional external reference for this scope as a URI or blob. | |
|
|
214
271
|
|
|
215
272
|
---
|
|
216
273
|
|
|
274
|
+
## Certified Lexicons
|
|
275
|
+
|
|
276
|
+
Certified lexicons are common/shared lexicons that can be used across multiple protocols.
|
|
277
|
+
|
|
217
278
|
### `app.certified.location`
|
|
218
279
|
|
|
219
280
|
**Description:** A location reference
|
|
@@ -227,11 +288,19 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
|
|
|
227
288
|
| `lpVersion` | `string` | ✅ | The version of the Location Protocol | maxLength: 10 |
|
|
228
289
|
| `srs` | `string` | ✅ | The Spatial Reference System URI (e.g., http://www.opengis.net/def/crs/OGC/1.3/CRS84) that defines the coordinate system. | maxLength: 100 |
|
|
229
290
|
| `locationType` | `string` | ✅ | An identifier for the format of the location data (e.g., coordinate-decimal, geojson-point) | maxLength: 20, Known values: `coordinate-decimal`, `geojson-point` |
|
|
230
|
-
| `location` | `union` | ✅ | The location of where the work was performed as a URI or
|
|
291
|
+
| `location` | `union` | ✅ | The location of where the work was performed as a URI, blob, or inline string. | |
|
|
231
292
|
| `name` | `string` | ❌ | Optional name for this location | maxLength: 1000, maxGraphemes: 100 |
|
|
232
293
|
| `description` | `string` | ❌ | Optional description for this location | maxLength: 2000, maxGraphemes: 500 |
|
|
233
294
|
| `createdAt` | `string` | ✅ | Client-declared timestamp when this record was originally created | |
|
|
234
295
|
|
|
296
|
+
#### Defs
|
|
297
|
+
|
|
298
|
+
##### `app.certified.location#string`
|
|
299
|
+
|
|
300
|
+
| Property | Type | Required | Description |
|
|
301
|
+
| -------- | -------- | -------- | ------------------------- |
|
|
302
|
+
| `string` | `string` | ✅ | The location string value |
|
|
303
|
+
|
|
235
304
|
---
|
|
236
305
|
|
|
237
306
|
### `app.certified.badge.definition`
|
|
@@ -287,6 +356,90 @@ Certified lexicons are common/shared lexicons that can be used across multiple p
|
|
|
287
356
|
|
|
288
357
|
---
|
|
289
358
|
|
|
359
|
+
### `app.certified.actor.profile`
|
|
360
|
+
|
|
361
|
+
**Description:** A declaration of a Hypercert account profile.
|
|
362
|
+
|
|
363
|
+
**Key:** `literal:self`
|
|
364
|
+
|
|
365
|
+
#### Properties
|
|
366
|
+
|
|
367
|
+
| Property | Type | Required | Description | Comments |
|
|
368
|
+
| ------------- | -------- | -------- | ------------------------------------------------------------------------------ | ---------------------------------- |
|
|
369
|
+
| `displayName` | `string` | ❌ | | maxLength: 640, maxGraphemes: 64 |
|
|
370
|
+
| `description` | `string` | ❌ | Free-form profile description text. | maxLength: 2560, maxGraphemes: 256 |
|
|
371
|
+
| `pronouns` | `string` | ❌ | Free-form pronouns text. | maxLength: 200, maxGraphemes: 20 |
|
|
372
|
+
| `website` | `string` | ❌ | | |
|
|
373
|
+
| `avatar` | `union` | ❌ | Small image to be displayed next to posts from account. AKA, 'profile picture' | |
|
|
374
|
+
| `banner` | `union` | ❌ | Larger horizontal image to display behind profile view. | |
|
|
375
|
+
| `createdAt` | `string` | ❌ | | |
|
|
376
|
+
|
|
377
|
+
---
|
|
378
|
+
|
|
379
|
+
### `app.certified.defs`
|
|
380
|
+
|
|
381
|
+
**Description:** Common type definitions used across certified protocols.
|
|
382
|
+
|
|
383
|
+
#### Defs
|
|
384
|
+
|
|
385
|
+
##### `app.certified.defs#did`
|
|
386
|
+
|
|
387
|
+
| Property | Type | Required | Description |
|
|
388
|
+
| -------- | -------- | -------- | --------------------- |
|
|
389
|
+
| `did` | `string` | ✅ | The DID string value. |
|
|
390
|
+
|
|
391
|
+
---
|
|
392
|
+
|
|
393
|
+
## Type Definitions
|
|
394
|
+
|
|
395
|
+
Common type definitions used across all protocols.
|
|
396
|
+
|
|
397
|
+
### `org.hypercerts.defs`
|
|
398
|
+
|
|
399
|
+
#### Defs
|
|
400
|
+
|
|
401
|
+
##### `org.hypercerts.defs#uri`
|
|
402
|
+
|
|
403
|
+
| Property | Type | Required | Description |
|
|
404
|
+
| -------- | -------- | -------- | -------------------- |
|
|
405
|
+
| `uri` | `string` | ✅ | URI to external data |
|
|
406
|
+
|
|
407
|
+
##### `org.hypercerts.defs#smallBlob`
|
|
408
|
+
|
|
409
|
+
| Property | Type | Required | Description |
|
|
410
|
+
| -------- | ------ | -------- | ---------------------------------- |
|
|
411
|
+
| `blob` | `blob` | ✅ | Blob to external data (up to 10MB) |
|
|
412
|
+
|
|
413
|
+
##### `org.hypercerts.defs#largeBlob`
|
|
414
|
+
|
|
415
|
+
| Property | Type | Required | Description |
|
|
416
|
+
| -------- | ------ | -------- | ----------------------------------- |
|
|
417
|
+
| `blob` | `blob` | ✅ | Blob to external data (up to 100MB) |
|
|
418
|
+
|
|
419
|
+
##### `org.hypercerts.defs#smallImage`
|
|
420
|
+
|
|
421
|
+
| Property | Type | Required | Description |
|
|
422
|
+
| -------- | ------ | -------- | ----------------- |
|
|
423
|
+
| `image` | `blob` | ✅ | Image (up to 5MB) |
|
|
424
|
+
|
|
425
|
+
##### `org.hypercerts.defs#largeImage`
|
|
426
|
+
|
|
427
|
+
| Property | Type | Required | Description |
|
|
428
|
+
| -------- | ------ | -------- | ------------------ |
|
|
429
|
+
| `image` | `blob` | ✅ | Image (up to 10MB) |
|
|
430
|
+
|
|
431
|
+
---
|
|
432
|
+
|
|
433
|
+
## External Lexicons
|
|
434
|
+
|
|
435
|
+
External lexicons from other protocols and systems.
|
|
436
|
+
|
|
437
|
+
### `com.atproto.repo.strongRef`
|
|
438
|
+
|
|
439
|
+
**Key:** `tid`
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
290
443
|
## Notes
|
|
291
444
|
|
|
292
445
|
- All timestamps use the `datetime` format (ISO 8601)
|