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