org.ballotready.constituent.profile
Schema Diff
+59 -6
Compatibility Analysis
Breaking Changes Detected
8 breaking changes, 19 non-breaking changes.
Breaking Changes (8)
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.ballotready.constituent.profile:body", src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.createdAt", kind: "prop", name: Some("createdAt") }
- RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "org.ballotready.constituent.profile#issue", src: "org.ballotready.constituent.profile#issue", tgt: "org.ballotready.constituent.profile#issue.civicEngineId", kind: "prop", name: Some("civicEngineId") }
- RemovedVertex RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileFallbacks" }
- RemovedVertex RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileFallbacks:items" }
- RemovedVertex RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.usState" }
- RemovedEdge RemovedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.bskyProfileFallbacks", kind: "prop", name: Some("bskyProfileFallbacks") }
- RemovedEdge RemovedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.usState", kind: "prop", name: Some("usState") }
- RemovedEdge RemovedEdge { src: "org.ballotready.constituent.profile:body.bskyProfileFallbacks", tgt: "org.ballotready.constituent.profile:body.bskyProfileFallbacks:items", kind: "items", name: None }
Non-Breaking Changes (19)
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue.civicEngineId" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue.name" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.avatar" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.banner" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileProperties" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileProperties:items" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.constituentOf" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.topIssues" }
- AddedVertex AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.topIssues:items" }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile#issue", tgt: "org.ballotready.constituent.profile#issue.name", kind: "prop", name: Some("name") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.avatar", kind: "prop", name: Some("avatar") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.banner", kind: "prop", name: Some("banner") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.bskyProfileProperties", kind: "prop", name: Some("bskyProfileProperties") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.constituentOf", kind: "prop", name: Some("constituentOf") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.topIssues", kind: "prop", name: Some("topIssues") }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body.bskyProfileProperties", tgt: "org.ballotready.constituent.profile:body.bskyProfileProperties:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body.topIssues", tgt: "org.ballotready.constituent.profile:body.topIssues:items", kind: "items", name: None }
- AddedEdge AddedEdge { src: "org.ballotready.constituent.profile:body.topIssues:items", tgt: "org.ballotready.constituent.profile#issue", kind: "ref", name: None }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileFallbacks" }RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileFallbacks:items" }RemovedVertex { vertex_id: "org.ballotready.constituent.profile:body.usState" }
Added Elements
AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue" }AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue.civicEngineId" }AddedVertex { vertex_id: "org.ballotready.constituent.profile#issue.name" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.avatar" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.banner" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileProperties" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.bskyProfileProperties:items" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.constituentOf" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.topIssues" }AddedVertex { vertex_id: "org.ballotready.constituent.profile:body.topIssues:items" }
Additional Notes
- Breaking: RequiredEdgeAdded { vertex_id: "org.ballotready.constituent.profile#issue", src: "org.ballotready.constituent.profile#issue", tgt: "org.ballotready.constituent.profile#issue.civicEngineId", kind: "prop", name: Some("civicEngineId") }
- Breaking: RequiredEdgeAdded { vertex_id: "org.ballotready.constituent.profile:body", src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.createdAt", kind: "prop", name: Some("createdAt") }
- Breaking: RemovedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.bskyProfileFallbacks", kind: "prop", name: Some("bskyProfileFallbacks") }
- Breaking: RemovedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.usState", kind: "prop", name: Some("usState") }
- Breaking: RemovedEdge { src: "org.ballotready.constituent.profile:body.bskyProfileFallbacks", tgt: "org.ballotready.constituent.profile:body.bskyProfileFallbacks:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile#issue", tgt: "org.ballotready.constituent.profile#issue.name", kind: "prop", name: Some("name") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.avatar", kind: "prop", name: Some("avatar") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.banner", kind: "prop", name: Some("banner") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.bskyProfileProperties", kind: "prop", name: Some("bskyProfileProperties") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.constituentOf", kind: "prop", name: Some("constituentOf") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body", tgt: "org.ballotready.constituent.profile:body.topIssues", kind: "prop", name: Some("topIssues") }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body.bskyProfileProperties", tgt: "org.ballotready.constituent.profile:body.bskyProfileProperties:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body.topIssues", tgt: "org.ballotready.constituent.profile:body.topIssues:items", kind: "items", name: None }
- Non-breaking: AddedEdge { src: "org.ballotready.constituent.profile:body.topIssues:items", tgt: "org.ballotready.constituent.profile#issue", kind: "ref", name: None }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
+
"issue": {
5
+
"description": "An issue or topic of concern.",
6
+
"properties": {
7
+
"civicEngineId": {
8
+
"description": "CivicEngine API identifier for the issue.",
9
+
"type": "string"
10
+
},
11
+
"name": {
12
+
"description": "Name of the issue.",
13
+
"type": "string"
14
+
}
15
+
},
16
+
"required": [
17
+
"civicEngineId"
18
+
],
19
+
"type": "object"
20
+
},
4
21
"main": {
5
22
"description": "A declaration of a BallotReady constituent profile.",
6
23
"key": "literal:self",
7
24
"record": {
8
25
"properties": {
9
-
"bskyProfileFallbacks": {
10
-
"description": "List of properties to pull from the user's Bluesky profile",
26
+
"avatar": {
27
+
"accept": [
28
+
"image/png",
29
+
"image/jpeg"
30
+
],
31
+
"description": "Small image to be displayed next to posts from account. AKA, 'profile picture'",
32
+
"maxSize": 1000000,
33
+
"type": "blob"
34
+
},
35
+
"banner": {
36
+
"accept": [
37
+
"image/png",
38
+
"image/jpeg"
39
+
],
40
+
"description": "Larger horizontal image to display behind profile view.",
41
+
"maxSize": 1000000,
42
+
"type": "blob"
43
+
},
44
+
"bskyProfileProperties": {
45
+
"description": "List of properties to inherit from the user's Bluesky profile (app.bsky.actor.profile).",
11
46
"items": {
12
47
"enum": [
48
+
"avatar",
49
+
"banner",
13
50
"displayName",
14
51
"description"
15
52
],
16
53
"type": "string"
17
54
},
18
55
"type": "array"
19
56
},
57
+
"constituentOf": {
58
+
"description": "Self-declared constituency group, e.g. \"Michigan\" or \"United States\".",
59
+
"maxGraphemes": 64,
60
+
"maxLength": 640,
61
+
"type": "string"
62
+
},
20
63
"createdAt": {
64
+
"description": "Timestamp when this record was originally created.",
21
65
"format": "datetime",
22
66
"type": "string"
23
67
},
24
68
"description": {
25
-
"description": "Free-form profile description text.",
69
+
"description": "The constituent's bio/description.",
26
70
"maxGraphemes": 256,
27
71
"maxLength": 2560,
28
72
"type": "string"
29
73
},
30
74
"displayName": {
75
+
"description": "The constituent's display name.",
31
76
"maxGraphemes": 64,
32
77
"maxLength": 640,
33
78
"type": "string"
34
79
},
35
-
"usState": {
36
-
"description": "Two-letter abbreviation for your current U.S. state or territory",
37
-
"type": "string"
80
+
"topIssues": {
81
+
"description": "Ranked list of the constituent's highest priority issues.",
82
+
"items": {
83
+
"ref": "#issue",
84
+
"type": "ref"
85
+
},
86
+
"maxLength": 10,
87
+
"type": "array"
38
88
}
39
89
},
90
+
"required": [
91
+
"createdAt"
92
+
],
40
93
"type": "object"
41
94
},
42
95
"type": "record"
43
96
}
44
97
},
45
98
"id": "org.ballotready.constituent.profile",
46
99
"lexicon": 1
47
100
}