garden.lexicon.nourishing-earthworm.crepeList
Schema Diff
+31 -5
Compatibility Analysis
Breaking Changes Detected
3 breaking changes, 6 non-breaking changes.
Breaking Changes (3)
- 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" }
- ConstraintTightened ConstraintTightened { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility", sort: "knownValues", old_value: "[\"private\",\"friends\",\"unlisted\",\"public\"]", new_value: "[\"private\",\"unlisted\",\"public\"]" }
Non-Breaking Changes (6)
- 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" }
- 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") }
Migration Guidance
Added Elements
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" }
Constraint Changes
- ConstraintTightened ConstraintTightened { vertex_id: "garden.lexicon.nourishing-earthworm.crepeList:body.visibility", sort: "knownValues", old_value: "[\"private\",\"friends\",\"unlisted\",\"public\"]", new_value: "[\"private\",\"unlisted\",\"public\"]" }
- 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.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") }
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
},
74
75
"shareId": {
75
-
"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 or friends",
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",
76
77
"maxLength": 32,
77
78
"minLength": 16,
78
79
"type": "string"
79
80
},
80
81
"showProgress": {
81
82
"default": false,
82
83
"description": "show a watched-count progress bar on the list page",
83
84
"type": "boolean"
84
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
+
},
85
112
"stamps": {
86
113
"description": "Field group to hybrid logical clock stamp.",
87
114
"type": "unknown"
88
115
},
89
116
"tags": {
90
117
"items": {
91
118
"maxLength": 640,
92
119
"type": "string"
93
120
},
94
121
"maxLength": 50,
95
122
"type": "array"
96
123
},
97
124
"updatedAt": {
98
125
"format": "datetime",
99
126
"type": "string"
100
127
},
101
128
"visibility": {
102
129
"default": "private",
103
-
"description": "who can see the list: private (only the owner), friends (friends and groups, once that exists), 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",
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",
104
131
"knownValues": [
105
132
"private",
106
-
"friends",
107
133
"unlisted",
108
134
"public"
109
135
],
110
136
"type": "string"
111
137
}
112
138
},
113
139
"required": [
114
140
"name",
115
141
"listType",
116
142
"createdAt",
117
143
"updatedAt"
118
144
],
119
145
"type": "object"
120
146
},
121
147
"type": "record"
122
148
},
123
149
"mirror": {
124
150
"properties": {
125
151
"fetchedAt": {
126
152
"description": "When the source was last read.",
127
153
"format": "datetime",
128
154
"type": "string"
129
155
},
130
156
"source": {
131
157
"knownValues": [
132
158
"letterboxd",
133
159
"imdb"
134
160
],
135
161
"type": "string"
136
162
},
137
163
"url": {
138
164
"description": "Public list URL as the user gave it.",
139
165
"maxLength": 2000,
140
166
"type": "string"
141
167
}
142
168
},
143
169
"required": [
144
170
"url",
145
171
"source",
146
172
"fetchedAt"
147
173
],
148
174
"type": "object"
149
175
},
150
176
"plexCollection": {
151
177
"properties": {
152
178
"name": {
153
179
"description": "Collection title on the server, matched case-insensitively.",
154
180
"maxLength": 200,
155
181
"type": "string"
156
182
},
157
183
"server": {
158
184
"description": "Plex machineIdentifier of the server. Absent means crepe's default server.",
159
185
"maxLength": 128,
160
186
"type": "string"
161
187
}
162
188
},
163
189
"required": [
164
190
"name"
165
191
],
166
192
"type": "object"
167
193
}
168
194
},
169
195
"id": "garden.lexicon.nourishing-earthworm.crepeList",
170
196
"lexicon": 1
171
197
}