org.hypercerts.claim.activity
Schema Diff
+7 -2
Compatibility Analysis
Backward Compatible
Backward compatible. 6 non-breaking changes.
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "app.certified.signature.defs#list" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.signatures" }
- AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body", tgt: "org.hypercerts.claim.activity:body.signatures", kind: "prop", name: Some("signatures") }
- AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.hypercerts.claim.activity#workScopeString.scope", sort: "maxGraphemes", old_value: "100", new_value: "1000" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.hypercerts.claim.activity#workScopeString.scope", sort: "maxLength", old_value: "1000", new_value: "10000" }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.certified.signature.defs#list" }AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.signatures" }
Constraint Changes
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.hypercerts.claim.activity#workScopeString.scope", sort: "maxGraphemes", old_value: "100", new_value: "1000" }
- ConstraintRelaxed ConstraintRelaxed { vertex_id: "org.hypercerts.claim.activity#workScopeString.scope", sort: "maxLength", old_value: "1000", new_value: "10000" }
Additional Notes
- Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body", tgt: "org.hypercerts.claim.activity:body.signatures", kind: "prop", name: Some("signatures") }
- Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.signatures", tgt: "app.certified.signature.defs#list", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"contributor": {
5
5
"description": "A contributor to the activity, with identity, weight, and contribution details.",
6
6
"properties": {
7
7
"contributionDetails": {
8
8
"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.",
9
9
"refs": [
10
10
"#contributorRole",
11
11
"com.atproto.repo.strongRef"
12
12
],
13
13
"type": "union"
14
14
},
15
15
"contributionWeight": {
16
16
"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.",
17
17
"maxLength": 100,
18
18
"type": "string"
19
19
},
20
20
"contributorIdentity": {
21
21
"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.",
22
22
"refs": [
23
23
"#contributorIdentity",
24
24
"com.atproto.repo.strongRef"
25
25
],
26
26
"type": "union"
27
27
}
28
28
},
29
29
"required": [
30
30
"contributorIdentity"
31
31
],
32
32
"type": "object"
33
33
},
34
34
"contributorIdentity": {
35
35
"description": "Contributor information as a string (DID or identifier).",
36
36
"properties": {
37
37
"identity": {
38
38
"description": "The contributor identity string (DID or identifier).",
39
39
"maxGraphemes": 100,
40
40
"maxLength": 1000,
41
41
"type": "string"
42
42
}
43
43
},
44
44
"required": [
45
45
"identity"
46
46
],
47
47
"type": "object"
48
48
},
49
49
"contributorRole": {
50
50
"description": "Contribution details as a string.",
51
51
"properties": {
52
52
"role": {
53
53
"description": "The contribution role or details.",
54
54
"maxGraphemes": 100,
55
55
"maxLength": 1000,
56
56
"type": "string"
57
57
}
58
58
},
59
59
"required": [
60
60
"role"
61
61
],
62
62
"type": "object"
63
63
},
64
64
"main": {
65
65
"description": "A hypercert record tracking impact work.",
66
66
"key": "any",
67
67
"record": {
68
68
"properties": {
69
69
"contributors": {
70
70
"description": "An array of contributor objects, each containing contributor information, weight, and contribution details.",
71
71
"items": {
72
72
"ref": "#contributor",
73
73
"type": "ref"
74
74
},
75
75
"type": "array"
76
76
},
77
77
"createdAt": {
78
78
"description": "Client-declared timestamp when this record was originally created",
79
79
"format": "datetime",
80
80
"type": "string"
81
81
},
82
82
"description": {
83
83
"description": "Long-form description of the activity. An inline string for plain text or markdown, a Leaflet linear document for rich-text content, or a strong reference to an external description record.",
84
84
"refs": [
85
85
"org.hypercerts.defs#descriptionString",
86
86
"pub.leaflet.pages.linearDocument",
87
87
"com.atproto.repo.strongRef"
88
88
],
89
89
"type": "union"
90
90
},
91
91
"endDate": {
92
92
"description": "When the work ended",
93
93
"format": "datetime",
94
94
"type": "string"
95
95
},
96
96
"image": {
97
97
"description": "The hypercert visual representation as a URI or image blob.",
98
98
"refs": [
99
99
"org.hypercerts.defs#uri",
100
100
"org.hypercerts.defs#smallImage"
101
101
],
102
102
"type": "union"
103
103
},
104
104
"locations": {
105
105
"description": "An array of strong references to the location where activity was performed. The record referenced must conform with the lexicon app.certified.location.",
106
106
"items": {
107
107
"ref": "com.atproto.repo.strongRef",
108
108
"type": "ref"
109
109
},
110
110
"maxLength": 1000,
111
111
"type": "array"
112
112
},
113
113
"rights": {
114
114
"description": "A strong reference to the rights that this hypercert has. The record referenced must conform with the lexicon org.hypercerts.claim.rights.",
115
115
"ref": "com.atproto.repo.strongRef",
116
116
"type": "ref"
117
117
},
118
118
"shortDescription": {
119
119
"description": "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
120
120
"maxGraphemes": 300,
121
121
"maxLength": 3000,
122
122
"type": "string"
123
123
},
124
124
"shortDescriptionFacets": {
125
125
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc).",
126
126
"items": {
127
127
"ref": "app.bsky.richtext.facet",
128
128
"type": "ref"
129
129
},
130
130
"type": "array"
131
131
},
132
+
"signatures": {
133
+
"description": "Optional cryptographic signatures attesting to this record's content.",
134
+
"ref": "app.certified.signature.defs#list",
135
+
"type": "ref"
136
+
},
132
137
"startDate": {
133
138
"description": "When the work began",
134
139
"format": "datetime",
135
140
"type": "string"
136
141
},
137
142
"title": {
138
143
"description": "Display title summarizing the impact work (e.g. 'Reforestation in Amazon Basin 2024')",
139
144
"maxLength": 256,
140
145
"type": "string"
141
146
},
142
147
"workScope": {
143
148
"description": "Work scope definition. A CEL expression for structured, machine-evaluable scopes or a free-form string for simple and legacy scopes.",
144
149
"refs": [
145
150
"org.hypercerts.workscope.cel",
146
151
"#workScopeString"
147
152
],
148
153
"type": "union"
149
154
}
150
155
},
151
156
"required": [
152
157
"title",
153
158
"shortDescription",
154
159
"createdAt"
155
160
],
156
161
"type": "object"
157
162
},
158
163
"type": "record"
159
164
},
160
165
"workScopeString": {
161
166
"description": "A free-form string describing the work scope for simple or legacy scopes.",
162
167
"properties": {
163
168
"scope": {
164
169
"description": "The work scope description string.",
165
-
"maxGraphemes": 100,
166
-
"maxLength": 1000,
170
+
"maxGraphemes": 1000,
171
+
"maxLength": 10000,
167
172
"type": "string"
168
173
}
169
174
},
170
175
"required": [
171
176
"scope"
172
177
],
173
178
"type": "object"
174
179
}
175
180
},
176
181
"id": "org.hypercerts.claim.activity",
177
182
"lexicon": 1
178
183
}