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