org.hypercerts.claim.activity
Schema Diff
+9 -5
Compatibility Analysis
Breaking Changes Detected
1 breaking change, 6 non-breaking changes.
Breaking Changes (1)
- KindChanged KindChanged { vertex_id: "org.hypercerts.claim.activity:body.description", old_kind: "ref", new_kind: "union" }
Non-Breaking Changes (6)
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant0" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant1" }
- AddedVertex AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant2" }
- AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
- AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
- AddedEdge AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant0" }AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant1" }AddedVertex { vertex_id: "org.hypercerts.claim.activity:body.description:variant2" }
Additional Notes
- Breaking: KindChanged { vertex_id: "org.hypercerts.claim.activity:body.description", old_kind: "ref", new_kind: "union" }
- Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant0", kind: "variant", name: Some("org.hypercerts.defs#descriptionString") }
- Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant1", kind: "variant", name: Some("pub.leaflet.pages.linearDocument") }
- Non-breaking: AddedEdge { src: "org.hypercerts.claim.activity:body.description", tgt: "org.hypercerts.claim.activity:body.description:variant2", kind: "variant", name: Some("com.atproto.repo.strongRef") }
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
65
"description": {
66
-
"ref": "pub.leaflet.pages.linearDocument#main",
67
-
"type": "ref",
68
-
"description": "Rich-text description, represented as a Leaflet linear document."
66
+
"refs": [
67
+
"org.hypercerts.defs#descriptionString",
68
+
"pub.leaflet.pages.linearDocument",
69
+
"com.atproto.repo.strongRef"
70
+
],
71
+
"type": "union",
72
+
"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."
69
73
},
70
74
"contributors": {
71
75
"type": "array",
72
76
"items": {
73
77
"ref": "#contributor",
74
78
"type": "ref"
75
79
},
76
-
"maxLength": 1000,
77
80
"description": "An array of contributor objects, each containing contributor information, weight, and contribution details."
78
81
},
79
82
"shortDescription": {
80
83
"type": "string",
81
84
"maxLength": 3000,
82
85
"description": "Short summary of this activity claim, suitable for previews and list views. Rich text annotations may be provided via `shortDescriptionFacets`.",
83
86
"maxGraphemes": 300
84
87
},
85
88
"shortDescriptionFacets": {
86
89
"type": "array",
87
90
"items": {
88
91
"ref": "app.bsky.richtext.facet",
89
92
"type": "ref"
90
93
},
91
94
"description": "Rich text annotations for `shortDescription` (mentions, URLs, hashtags, etc)."
92
95
}
93
96
}
94
97
},
95
98
"description": "A hypercert record tracking impact work."
96
99
},
97
100
"contributor": {
98
101
"type": "object",
99
102
"required": [
100
103
"contributorIdentity"
101
104
],
102
105
"properties": {
103
106
"contributionWeight": {
104
107
"type": "string",
105
108
"maxLength": 100,
106
109
"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."
107
110
},
108
111
"contributionDetails": {
109
112
"refs": [
110
113
"#contributorRole",
111
114
"com.atproto.repo.strongRef"
112
115
],
113
116
"type": "union",
114
117
"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."
115
118
},
116
119
"contributorIdentity": {
117
120
"refs": [
118
121
"#contributorIdentity",
119
122
"com.atproto.repo.strongRef"
120
123
],
121
124
"type": "union",
122
125
"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."
123
126
}
124
-
}
127
+
},
128
+
"description": "A contributor to the activity, with identity, weight, and contribution details."
125
129
},
126
130
"contributorRole": {
127
131
"type": "object",
128
132
"required": [
129
133
"role"
130
134
],
131
135
"properties": {
132
136
"role": {
133
137
"type": "string",
134
138
"maxLength": 1000,
135
139
"description": "The contribution role or details.",
136
140
"maxGraphemes": 100
137
141
}
138
142
},
139
143
"description": "Contribution details as a string."
140
144
},
141
145
"workScopeString": {
142
146
"type": "object",
143
147
"required": [
144
148
"scope"
145
149
],
146
150
"properties": {
147
151
"scope": {
148
152
"type": "string",
149
153
"maxLength": 1000,
150
154
"description": "The work scope description string.",
151
155
"maxGraphemes": 100
152
156
}
153
157
},
154
158
"description": "A free-form string describing the work scope for simple or legacy scopes."
155
159
},
156
160
"contributorIdentity": {
157
161
"type": "object",
158
162
"required": [
159
163
"identity"
160
164
],
161
165
"properties": {
162
166
"identity": {
163
167
"type": "string",
164
168
"maxLength": 1000,
165
169
"description": "The contributor identity string (DID or identifier).",
166
170
"maxGraphemes": 100
167
171
}
168
172
},
169
173
"description": "Contributor information as a string (DID or identifier)."
170
174
}
171
175
},
172
176
"$type": "com.atproto.lexicon.schema",
173
177
"lexicon": 1
174
178
}