garden.lexicon.nourishing-earthworm.crepeWatch

tyler.fun

Schema Diff

+41 -2

From

CID
bafyreigqp5xdsze...
Indexed At
2026-09-30 03:20 UTC
View this version

To

CID
bafyreifmpc4avso...
Indexed At
2026-10-02 22:49 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 13 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place", src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.name", kind: "prop", name: Some("name") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch:body", src: "garden.lexicon.nourishing-earthworm.crepeWatch:body", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch:body.watchedAt", kind: "prop", name: Some("watchedAt") }
Non-Breaking Changes (13)
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.address" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.fsqPlaceId" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.latitude" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.longitude" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.name" }
  • AddedVertex AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place" }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.address", kind: "prop", name: Some("address") }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.fsqPlaceId", kind: "prop", name: Some("fsqPlaceId") }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.latitude", kind: "prop", name: Some("latitude") }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.longitude", kind: "prop", name: Some("longitude") }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch:body", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place", kind: "prop", name: Some("place") }
  • AddedEdge AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.address" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.fsqPlaceId" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.latitude" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.longitude" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place.name" }
  • AddedVertex { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch#place", src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.name", kind: "prop", name: Some("name") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "garden.lexicon.nourishing-earthworm.crepeWatch:body", src: "garden.lexicon.nourishing-earthworm.crepeWatch:body", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch:body.watchedAt", kind: "prop", name: Some("watchedAt") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.address", kind: "prop", name: Some("address") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.fsqPlaceId", kind: "prop", name: Some("fsqPlaceId") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.latitude", kind: "prop", name: Some("latitude") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch#place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place.longitude", kind: "prop", name: Some("longitude") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch:body", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place", kind: "prop", name: Some("place") }
  • Non-breaking: AddedEdge { src: "garden.lexicon.nourishing-earthworm.crepeWatch:body.place", tgt: "garden.lexicon.nourishing-earthworm.crepeWatch#place", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "One viewing of a movie, or of a TV show, season or episode, in crepe's private diary. A watch with no rating and no review text is a plain play (for example an episode Plex reported) and stays out of the diary log.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "containsSpoilers": {
10 10
            "type": "boolean"
11 11
          },
12 12
          "createdAt": {
13 13
            "description": "When this record was created (not the watch time).",
14 14
            "format": "datetime",
15 15
            "type": "string"
16 16
          },
17 17
          "episodeNumber": {
18 18
            "description": "Required for episode watches.",
19 19
            "minimum": 0,
20 20
            "type": "integer"
21 21
          },
22 22
          "episodeTitle": {
23 23
            "maxLength": 1000,
24 24
            "type": "string"
25 25
          },
26 26
          "episodeTmdbId": {
27 27
            "description": "The episode's own TMDB id, when known.",
28 28
            "maxLength": 32,
29 29
            "type": "string"
30 30
          },
31 31
          "genres": {
32 32
            "items": {
33 33
              "maxLength": 100,
34 34
              "type": "string"
35 35
            },
36 36
            "maxLength": 20,
37 37
            "type": "array"
38 38
          },
39 39
          "imdbId": {
40 40
            "maxLength": 32,
41 41
            "type": "string"
42 42
          },
43 43
          "kind": {
44 44
            "description": "What was watched.",
45 45
            "knownValues": [
46 46
              "movie",
47 47
              "show",
48 48
              "season",
49 49
              "episode"
50 50
            ],
51 51
            "type": "string"
52 52
          },
53 53
          "mainCredit": {
54 54
            "maxLength": 300,
55 55
            "type": "string"
56 56
          },
57 57
          "mainCreditRole": {
58 58
            "knownValues": [
59 59
              "director",
60 60
              "creator"
61 61
            ],
62 62
            "type": "string"
63 63
          },
64 +
          "place": {
65 +
            "description": "Where it was watched: a movie theater from the Foursquare places catalog, or any place of the user's own (\"Steve's house\").",
66 +
            "ref": "#place",
67 +
            "type": "ref"
68 +
          },
64 69
          "rating": {
65 70
            "description": "Half stars out of five, times two. Absent means unrated.",
66 71
            "maximum": 10,
67 72
            "minimum": 1,
68 73
            "type": "integer"
69 74
          },
70 75
          "releaseDate": {
71 76
            "description": "Snapshot, YYYY-MM-DD.",
72 77
            "maxLength": 32,
73 78
            "type": "string"
74 79
          },
75 80
          "rewatch": {
81 +
            "description": "deprecated 2026-09-29: derived by readers, no longer written",
76 82
            "type": "boolean"
77 83
          },
78 84
          "seasonNumber": {
79 85
            "description": "Required for season and episode watches.",
80 86
            "minimum": 0,
81 87
            "type": "integer"
82 88
          },
83 89
          "source": {
84 90
            "description": "Where this watch was first recorded.",
85 91
            "knownValues": [
86 92
              "crepe",
87 93
              "plex",
88 94
              "popfeed",
89 95
              "letterboxd"
90 96
            ],
91 97
            "type": "string"
92 98
          },
93 99
          "stamps": {
94 100
            "description": "Map of field group name to hybrid logical clock stamp, for field-level last-write-wins merge between devices and the sync server.",
95 101
            "type": "unknown"
96 102
          },
97 103
          "tags": {
98 104
            "items": {
99 105
              "maxGraphemes": 64,
100 106
              "maxLength": 640,
101 107
              "type": "string"
102 108
            },
103 109
            "maxLength": 50,
104 110
            "type": "array"
105 111
          },
106 112
          "text": {
107 113
            "description": "Review text, plain.",
108 114
            "maxGraphemes": 10000,
109 115
            "maxLength": 100000,
110 116
            "type": "string"
111 117
          },
112 118
          "title": {
113 119
            "description": "Snapshot of the movie or show title, for offline display.",
114 120
            "maxLength": 1000,
115 121
            "type": "string"
116 122
          },
117 123
          "tmdbId": {
118 124
            "description": "TMDB id of the movie, or of the show for show, season and episode watches. Never an episode's own id.",
119 125
            "maxLength": 32,
120 126
            "type": "string"
121 127
          },
122 128
          "updatedAt": {
123 129
            "format": "datetime",
124 130
            "type": "string"
125 131
          },
126 132
          "watchedAt": {
127 -
            "description": "When it was watched.",
133 +
            "description": "When it was watched. Absent for a watch logged without a date.",
128 134
            "format": "datetime",
129 135
            "type": "string"
130 136
          }
131 137
        },
132 138
        "required": [
133 139
          "kind",
134 140
          "tmdbId",
135 -
          "watchedAt",
136 141
          "createdAt",
137 142
          "updatedAt"
138 143
        ],
139 144
        "type": "object"
140 145
      },
141 146
      "type": "record"
147 +
    },
148 +
    "place": {
149 +
      "properties": {
150 +
        "address": {
151 +
          "description": "One-line address snapshot, for display.",
152 +
          "maxGraphemes": 500,
153 +
          "maxLength": 5000,
154 +
          "type": "string"
155 +
        },
156 +
        "fsqPlaceId": {
157 +
          "description": "Foursquare OS Places id when the place came from the catalog. Absent for a place of the user's own.",
158 +
          "maxLength": 64,
159 +
          "type": "string"
160 +
        },
161 +
        "latitude": {
162 +
          "description": "Decimal degrees as a string, like community.lexicon.location.geo.",
163 +
          "maxLength": 32,
164 +
          "type": "string"
165 +
        },
166 +
        "longitude": {
167 +
          "maxLength": 32,
168 +
          "type": "string"
169 +
        },
170 +
        "name": {
171 +
          "description": "Display name. A theater's catalog name, or whatever the user typed.",
172 +
          "maxGraphemes": 300,
173 +
          "maxLength": 3000,
174 +
          "type": "string"
175 +
        }
176 +
      },
177 +
      "required": [
178 +
        "name"
179 +
      ],
180 +
      "type": "object"
142 181
    }
143 182
  },
144 183
  "id": "garden.lexicon.nourishing-earthworm.crepeWatch",
145 184
  "lexicon": 1
146 185
}

Compare Other Versions

Lexicon Garden

@