garden.lexicon.nourishing-earthworm.crepeList

tyler.fun

Schema Diff

+40 -2

From

CID
bafyreigcqvvdd7f...
Indexed At
2026-10-06 20:41 UTC
View this version

To

CID
bafyreih2isoovzd...
Indexed At
2026-10-08 03:13 UTC
View this version

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
}

Compare Other Versions

Lexicon Garden

@