garden.lexicon.nourishing-earthworm.crepeList
Schema Diff
+45 -2
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 10 non-breaking changes.
Breaking Changes (2)
- ConstraintAdded ConstraintAdded { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.description", sort: "maxGraphemes", value: "300" }
- ConstraintTightened ConstraintTightened { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.description", sort: "maxLength", old_value: "10000", new_value: "3000" }
Non-Breaking Changes (10)
- AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.shareId" }
- AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.showReviews" }
- AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.sort" }
- AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.sortDirection" }
- AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility" }
- AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.shareId", kind: "prop", name: Some("shareId") }
- AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.showReviews", kind: "prop", name: Some("showReviews") }
- AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.sort", kind: "prop", name: Some("sort") }
- AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.sortDirection", kind: "prop", name: Some("sortDirection") }
- AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility", kind: "prop", name: Some("visibility") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.shareId" }AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.showReviews" }AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.sort" }AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.sortDirection" }AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.description", sort: "maxGraphemes", value: "300" }
- ConstraintTightened ConstraintTightened { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.description", sort: "maxLength", old_value: "10000", new_value: "3000" }
Additional Notes
- Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.shareId", kind: "prop", name: Some("shareId") }
- Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.showReviews", kind: "prop", name: Some("showReviews") }
- Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.sort", kind: "prop", name: Some("sort") }
- Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.sortDirection", kind: "prop", name: Some("sortDirection") }
- Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeList:body", tgt: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility", kind: "prop", name: Some("visibility") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"main": {
5
5
"description": "A list of titles in crepe's private library: the watchlist or a user list.",
6
6
"key": "tid",
7
7
"record": {
8
8
"properties": {
9
9
"autoAddMinRating": {
10
10
"description": "titles rated at or above this (half stars times two) are added automatically",
11
11
"maximum": 10,
12
12
"minimum": 1,
13
13
"type": "integer"
14
14
},
15
15
"createdAt": {
16
16
"format": "datetime",
17
17
"type": "string"
18
18
},
19
19
"description": {
20
-
"maxLength": 10000,
20
+
"maxGraphemes": 300,
21
+
"maxLength": 3000,
21
22
"type": "string"
22
23
},
23
24
"listType": {
24
25
"knownValues": [
25
26
"watchlist",
26
27
"list"
27
28
],
28
29
"type": "string"
29
30
},
30
31
"locked": {
31
32
"default": false,
32
33
"description": "hide the list from add-to-list pickers",
33
34
"type": "boolean"
34
35
},
35
36
"mediaType": {
36
37
"description": "deprecated, read but no longer written; use mediaTypes. restrict the list to films or to shows; absent means both",
37
38
"knownValues": [
38
39
"movie",
39
40
"tv"
40
41
],
41
42
"type": "string"
42
43
},
43
44
"mediaTypes": {
44
-
"description": "the kinds of title the list takes; absent means films and shows",
45
+
"description": "the kinds of title the list takes; absent means films and shows. special is standup specials, a subset of movies",
45
46
"items": {
46
47
"knownValues": [
47
48
"movie",
48
49
"tv",
49
50
"special"
50
51
],
51
52
"type": "string"
52
53
},
53
54
"maxLength": 8,
54
55
"type": "array"
55
56
},
56
57
"mirror": {
57
58
"description": "This list follows a public Letterboxd or IMDb list, one way. The source is authoritative.",
58
59
"ref": "#mirror",
59
60
"type": "ref"
60
61
},
61
62
"name": {
62
63
"maxGraphemes": 100,
63
64
"maxLength": 1000,
64
65
"type": "string"
65
66
},
66
67
"ordered": {
67
68
"type": "boolean"
68
69
},
69
70
"plexCollection": {
70
71
"description": "Mirror this list, one way, into a collection on a Plex Media Server. The server owner grants which collections a user may bind.",
71
72
"ref": "#plexCollection",
72
73
"type": "ref"
73
74
},
75
+
"shareId": {
76
+
"description": "random url-safe id in the share link of an unlisted or public list; minted when the list first leaves private, dropped when it returns to private",
77
+
"maxLength": 32,
78
+
"minLength": 16,
79
+
"type": "string"
80
+
},
74
81
"showProgress": {
75
82
"default": false,
76
83
"description": "show a watched-count progress bar on the list page",
77
84
"type": "boolean"
78
85
},
86
+
"showReviews": {
87
+
"default": false,
88
+
"description": "show the list author's rating and review on each row of the list page",
89
+
"type": "boolean"
90
+
},
91
+
"sort": {
92
+
"default": "custom",
93
+
"description": "how the list orders its titles: custom (by hand, by each item's position) or by when the author last watched each title, its release date, its title, when it was added, or the author's rating. absent means custom",
94
+
"knownValues": [
95
+
"custom",
96
+
"lastWatched",
97
+
"release",
98
+
"title",
99
+
"added",
100
+
"rating"
101
+
],
102
+
"type": "string"
103
+
},
104
+
"sortDirection": {
105
+
"description": "which way sort runs; absent means the sort's natural way (newest, most recent or highest first; titles a to z). ignored when sort is custom",
106
+
"knownValues": [
107
+
"asc",
108
+
"desc"
109
+
],
110
+
"type": "string"
111
+
},
79
112
"stamps": {
80
113
"description": "Field group to hybrid logical clock stamp.",
81
114
"type": "unknown"
82
115
},
83
116
"tags": {
84
117
"items": {
85
118
"maxLength": 640,
86
119
"type": "string"
87
120
},
88
121
"maxLength": 50,
89
122
"type": "array"
90
123
},
91
124
"updatedAt": {
92
125
"format": "datetime",
93
126
"type": "string"
127
+
},
128
+
"visibility": {
129
+
"default": "private",
130
+
"description": "who can see the list: private (only the owner), unlisted (a public page, not indexed, reachable by its share link) or public (a public page, indexed, with the records copied into the public repo). absent means private. a reader keeps a value it does not know rather than treating the list as private",
131
+
"knownValues": [
132
+
"private",
133
+
"unlisted",
134
+
"public"
135
+
],
136
+
"type": "string"
94
137
}
95
138
},
96
139
"required": [
97
140
"name",
98
141
"listType",
99
142
"createdAt",
100
143
"updatedAt"
101
144
],
102
145
"type": "object"
103
146
},
104
147
"type": "record"
105
148
},
106
149
"mirror": {
107
150
"properties": {
108
151
"fetchedAt": {
109
152
"description": "When the source was last read.",
110
153
"format": "datetime",
111
154
"type": "string"
112
155
},
113
156
"source": {
114
157
"knownValues": [
115
158
"letterboxd",
116
159
"imdb"
117
160
],
118
161
"type": "string"
119
162
},
120
163
"url": {
121
164
"description": "Public list URL as the user gave it.",
122
165
"maxLength": 2000,
123
166
"type": "string"
124
167
}
125
168
},
126
169
"required": [
127
170
"url",
128
171
"source",
129
172
"fetchedAt"
130
173
],
131
174
"type": "object"
132
175
},
133
176
"plexCollection": {
134
177
"properties": {
135
178
"name": {
136
179
"description": "Collection title on the server, matched case-insensitively.",
137
180
"maxLength": 200,
138
181
"type": "string"
139
182
},
140
183
"server": {
141
184
"description": "Plex machineIdentifier of the server. Absent means crepe's default server.",
142
185
"maxLength": 128,
143
186
"type": "string"
144
187
}
145
188
},
146
189
"required": [
147
190
"name"
148
191
],
149
192
"type": "object"
150
193
}
151
194
},
152
195
"id": "garden.lexicon.nourishing-earthworm.crepeList",
153
196
"lexicon": 1
154
197
}