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