app.placita.place

placita.app

Schema Diff

+120 -0

From

CID
bafyreibnvdik34e...
Indexed At
2026-10-09 13:08 UTC
View this version

To

CID
bafyreievruefhj3...
Indexed At
2026-10-14 01:10 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

2 breaking changes, 42 non-breaking changes.

Breaking Changes (2)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.placita.place#osmTag", src: "app.placita.place#osmTag", tgt: "app.placita.place#osmTag.key", kind: "prop", name: Some("key") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.placita.place#osmTag", src: "app.placita.place#osmTag", tgt: "app.placita.place#osmTag.value", kind: "prop", name: Some("value") }
Non-Breaking Changes (42)
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.city" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.country" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.countryCode" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.houseNumber" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.postcode" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.state" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.street" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmAddress.suburb" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails.address" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails.checkedAt" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails.editedAt" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails.tags" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmDetails.tags:items" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmTag" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmTag.key" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place#osmTag.value" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place:body.osm" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place:body.photoCredit" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place:body.placeCode" }
  • AddedVertex AddedVertex { vertex_id: "app.placita.place:body.rating" }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.city", kind: "prop", name: Some("city") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.country", kind: "prop", name: Some("country") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.countryCode", kind: "prop", name: Some("countryCode") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.houseNumber", kind: "prop", name: Some("houseNumber") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.postcode", kind: "prop", name: Some("postcode") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.state", kind: "prop", name: Some("state") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.street", kind: "prop", name: Some("street") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.suburb", kind: "prop", name: Some("suburb") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.address", kind: "prop", name: Some("address") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.checkedAt", kind: "prop", name: Some("checkedAt") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.editedAt", kind: "prop", name: Some("editedAt") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.tags", kind: "prop", name: Some("tags") }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails.address", tgt: "app.placita.place#osmAddress", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails.tags", tgt: "app.placita.place#osmDetails.tags:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "app.placita.place#osmDetails.tags:items", tgt: "app.placita.place#osmTag", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.osm", kind: "prop", name: Some("osm") }
  • AddedEdge AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.photoCredit", kind: "prop", name: Some("photoCredit") }
  • AddedEdge AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.placeCode", kind: "prop", name: Some("placeCode") }
  • AddedEdge AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.rating", kind: "prop", name: Some("rating") }
  • AddedEdge AddedEdge { src: "app.placita.place:body.osm", tgt: "app.placita.place#osmDetails", kind: "ref", name: None }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "app.placita.place#osmAddress" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.city" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.country" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.countryCode" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.houseNumber" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.postcode" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.state" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.street" }
  • AddedVertex { vertex_id: "app.placita.place#osmAddress.suburb" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails.address" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails.checkedAt" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails.editedAt" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails.tags" }
  • AddedVertex { vertex_id: "app.placita.place#osmDetails.tags:items" }
  • AddedVertex { vertex_id: "app.placita.place#osmTag" }
  • AddedVertex { vertex_id: "app.placita.place#osmTag.key" }
  • AddedVertex { vertex_id: "app.placita.place#osmTag.value" }
  • AddedVertex { vertex_id: "app.placita.place:body.osm" }
  • AddedVertex { vertex_id: "app.placita.place:body.photoCredit" }
  • AddedVertex { vertex_id: "app.placita.place:body.placeCode" }
  • AddedVertex { vertex_id: "app.placita.place:body.rating" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.placita.place#osmTag", src: "app.placita.place#osmTag", tgt: "app.placita.place#osmTag.key", kind: "prop", name: Some("key") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.placita.place#osmTag", src: "app.placita.place#osmTag", tgt: "app.placita.place#osmTag.value", kind: "prop", name: Some("value") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.city", kind: "prop", name: Some("city") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.country", kind: "prop", name: Some("country") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.countryCode", kind: "prop", name: Some("countryCode") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.houseNumber", kind: "prop", name: Some("houseNumber") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.postcode", kind: "prop", name: Some("postcode") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.state", kind: "prop", name: Some("state") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.street", kind: "prop", name: Some("street") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmAddress", tgt: "app.placita.place#osmAddress.suburb", kind: "prop", name: Some("suburb") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.address", kind: "prop", name: Some("address") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.checkedAt", kind: "prop", name: Some("checkedAt") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.editedAt", kind: "prop", name: Some("editedAt") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails", tgt: "app.placita.place#osmDetails.tags", kind: "prop", name: Some("tags") }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails.address", tgt: "app.placita.place#osmAddress", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails.tags", tgt: "app.placita.place#osmDetails.tags:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "app.placita.place#osmDetails.tags:items", tgt: "app.placita.place#osmTag", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.osm", kind: "prop", name: Some("osm") }
  • Non-breaking: AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.photoCredit", kind: "prop", name: Some("photoCredit") }
  • Non-breaking: AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.placeCode", kind: "prop", name: Some("placeCode") }
  • Non-breaking: AddedEdge { src: "app.placita.place:body", tgt: "app.placita.place:body.rating", kind: "prop", name: Some("rating") }
  • Non-breaking: AddedEdge { src: "app.placita.place:body.osm", tgt: "app.placita.place#osmDetails", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 4
    "main": {
5 5
      "description": "A place saved by a user. The primary entity of Placita: one record per place, stored in the user's own repository.",
6 6
      "key": "tid",
7 7
      "record": {
8 8
        "properties": {
9 9
          "category": {
10 10
            "description": "Place type from Placita's fixed list, for example restaurant, cafe or museum. Missing or unknown means generic.",
11 11
            "knownValues": [
12 12
              "generic",
13 13
              "restaurant",
14 14
              "fastfood",
15 15
              "cafe",
16 16
              "bar",
17 17
              "beer",
18 18
              "wine",
19 19
              "nightclub",
20 20
              "bakery",
21 21
              "grocery",
22 22
              "clothing",
23 23
              "shopping",
24 24
              "lodging",
25 25
              "campsite",
26 26
              "museum",
27 27
              "attraction",
28 28
              "viewpoint",
29 29
              "worship",
30 30
              "park",
31 31
              "playground",
32 32
              "sports",
33 33
              "swimming",
34 34
              "zoo",
35 35
              "cinema",
36 36
              "theatre",
37 37
              "library",
38 38
              "school",
39 39
              "college",
40 40
              "hospital",
41 41
              "pharmacy",
42 42
              "doctor",
43 43
              "dentist",
44 44
              "bank",
45 45
              "atm",
46 46
              "post",
47 47
              "police",
48 48
              "fuel",
49 49
              "parking",
50 50
              "bus",
51 51
              "rail",
52 52
              "airport",
53 53
              "ferry"
54 54
            ],
55 55
            "maxLength": 32,
56 56
            "type": "string"
57 57
          },
58 58
          "createdAt": {
59 59
            "description": "When the place was saved.",
60 60
            "format": "datetime",
61 61
            "type": "string"
62 62
          },
63 63
          "location": {
64 64
            "description": "Where the place is. Normally community.lexicon.location.geo: coordinates as strings, with the street address in its name field when known.",
65 65
            "refs": [
66 66
              "community.lexicon.location.geo",
67 67
              "community.lexicon.location.address"
68 68
            ],
69 69
            "type": "union"
70 70
          },
71 71
          "name": {
72 72
            "description": "Name of the place as the user saved it.",
73 73
            "maxGraphemes": 100,
74 74
            "maxLength": 300,
75 75
            "type": "string"
76 76
          },
77 77
          "note": {
78 78
            "description": "The user's own note about the place.",
79 79
            "maxGraphemes": 1000,
80 80
            "maxLength": 3000,
81 81
            "type": "string"
82 82
          },
83 83
          "noteTitle": {
84 84
            "description": "Optional short title for the note.",
85 85
            "maxGraphemes": 100,
86 86
            "maxLength": 100,
87 87
            "type": "string"
88 88
          },
89 89
          "openingHours": {
90 90
            "description": "Opening hours in OpenStreetMap opening_hours syntax, for example Mo-Su 09:00-18:00.",
91 91
            "maxLength": 512,
92 92
            "type": "string"
93 93
          },
94 +
          "osm": {
95 +
            "description": "Details in OpenStreetMap's own words (structured address, tags). Copied from OpenStreetMap when the place is linked (see checkedAt), and editable by the person (see editedAt). May also hold details typed for a place with no link. A copy made at a point in time: it is not kept up to date.",
96 +
            "ref": "#osmDetails",
97 +
            "type": "ref"
98 +
          },
94 99
          "osmId": {
95 100
            "description": "ID of the linked OpenStreetMap feature as a decimal string. Used together with osmType.",
96 101
            "maxLength": 32,
97 102
            "type": "string"
98 103
          },
99 104
          "osmType": {
100 105
            "description": "Type of the linked OpenStreetMap feature. Set only when the user confirmed the match. Used together with osmId.",
101 106
            "knownValues": [
102 107
              "node",
103 108
              "way",
104 109
              "relation"
105 110
            ],
106 111
            "type": "string"
107 112
          },
108 113
          "phone": {
109 114
            "description": "The place's phone number, as entered or taken from OpenStreetMap.",
110 115
            "maxLength": 64,
111 116
            "type": "string"
112 117
          },
113 118
          "photo": {
114 119
            "accept": [
115 120
              "image/png",
116 121
              "image/jpeg",
117 122
              "image/webp"
118 123
            ],
119 124
            "description": "Legacy single photo. Only older records have it. New records use photos.",
120 125
            "maxSize": 2000000,
121 126
            "type": "blob"
122 127
          },
128 +
          "photoCredit": {
129 +
            "description": "Who took the photos in photos, when they are not the person who owns this record, for example because they were copied from a public place of another person. Free text such as Photos by @alice.example. Only set together with photos.",
130 +
            "maxGraphemes": 100,
131 +
            "maxLength": 300,
132 +
            "type": "string"
133 +
          },
123 134
          "photos": {
124 135
            "description": "Photos the user uploaded for this place. Up to 4.",
125 136
            "items": {
126 137
              "accept": [
127 138
                "image/png",
128 139
                "image/jpeg",
129 140
                "image/webp"
130 141
              ],
131 142
              "maxSize": 2000000,
132 143
              "type": "blob"
133 144
            },
134 145
            "maxItems": 4,
135 146
            "type": "array"
136 147
          },
148 +
          "placeCode": {
149 +
            "description": "An opaque random code that names the place itself, for a place with no confirmed OpenStreetMap link. The person who first saves such a place makes it; every copy another person saves keeps it unchanged, so copies of one place can be found together. Not set when the place has an OpenStreetMap link, which names the place instead. Lowercase letters and the digits 2 to 7.",
150 +
            "maxLength": 64,
151 +
            "type": "string"
152 +
          },
153 +
          "rating": {
154 +
            "description": "The user's own rating of the place, from 1 (poor) to 5 (excellent). Only set when status is been. Absent means not rated.",
155 +
            "maximum": 5,
156 +
            "minimum": 1,
157 +
            "type": "integer"
158 +
          },
137 159
          "source": {
138 160
            "description": "Where the place came from: a map or review link the user pasted, an OpenStreetMap search result, or manual entry.",
139 161
            "knownValues": [
140 162
              "google",
141 163
              "foursquare",
142 164
              "osm",
143 165
              "apple",
144 166
              "tripadvisor",
145 167
              "manual"
146 168
            ],
147 169
            "type": "string"
148 170
          },
149 171
          "sourcePhotoAuthor": {
150 172
            "description": "Creator or credit text returned by Wikimedia Commons for sourcePhotoUrl.",
151 173
            "maxLength": 500,
152 174
            "type": "string"
153 175
          },
154 176
          "sourcePhotoLicense": {
155 177
            "description": "License of sourcePhotoUrl, e.g. CC BY-SA 4.0. Attribution duty applies when shown.",
156 178
            "maxLength": 64,
157 179
            "type": "string"
158 180
          },
159 181
          "sourcePhotoLicenseUrl": {
160 182
            "description": "License details URL returned by Wikimedia Commons.",
161 183
            "maxLength": 2048,
162 184
            "type": "string"
163 185
          },
164 186
          "sourcePhotoPageUrl": {
165 187
            "description": "Source file page URL for attribution and reuse details.",
166 188
            "maxLength": 2048,
167 189
            "type": "string"
168 190
          },
169 191
          "sourcePhotoSourceName": {
170 192
            "description": "Origin label for the source photo suggestion.",
171 193
            "maxLength": 128,
172 194
            "type": "string"
173 195
          },
174 196
          "sourcePhotoUrl": {
175 197
            "description": "URL of a free-licensed photo found for this place (Wikimedia Commons, OSM image tag, Wikidata P18). Not a blob - it is a reference to an external image, with attribution.",
176 198
            "maxLength": 2048,
177 199
            "type": "string"
178 200
          },
179 201
          "sourceUrl": {
180 202
            "description": "The link the place was created from, when there was one.",
181 203
            "maxLength": 2048,
182 204
            "type": "string"
183 205
          },
184 206
          "status": {
185 207
            "default": "want",
186 208
            "description": "want means the user wants to go there. been means the user has been there.",
187 209
            "knownValues": [
188 210
              "want",
189 211
              "been"
190 212
            ],
191 213
            "type": "string"
192 214
          },
193 215
          "tags": {
194 216
            "description": "The user's tags for this place, as strong references to app.placita.tag records.",
195 217
            "items": {
196 218
              "ref": "com.atproto.repo.strongRef",
197 219
              "type": "ref"
198 220
            },
199 221
            "maxLength": 50,
200 222
            "type": "array"
201 223
          },
202 224
          "visibility": {
203 225
            "default": "hidden",
204 226
            "description": "Whether Placita shows this place in public discovery. This is a display hint only: every record in an AT Protocol repository can be read by anyone, including hidden ones.",
205 227
            "knownValues": [
206 228
              "hidden",
207 229
              "public"
208 230
            ],
209 231
            "type": "string"
210 232
          },
211 233
          "website": {
212 234
            "description": "The place's website.",
213 235
            "maxLength": 2048,
214 236
            "type": "string"
215 237
          }
216 238
        },
217 239
        "required": [
218 240
          "name",
219 241
          "status",
220 242
          "visibility",
221 243
          "location",
222 244
          "createdAt"
223 245
        ],
224 246
        "type": "object"
225 247
      },
226 248
      "type": "record"
249 +
    },
250 +
    "osmAddress": {
251 +
      "description": "A structured address, as OpenStreetMap returns it. Every part is optional.",
252 +
      "properties": {
253 +
        "city": {
254 +
          "description": "City, town or village.",
255 +
          "maxLength": 200,
256 +
          "type": "string"
257 +
        },
258 +
        "country": {
259 +
          "description": "Country name.",
260 +
          "maxLength": 200,
261 +
          "type": "string"
262 +
        },
263 +
        "countryCode": {
264 +
          "description": "Two-letter ISO 3166-1 country code, upper case.",
265 +
          "maxLength": 2,
266 +
          "minLength": 2,
267 +
          "type": "string"
268 +
        },
269 +
        "houseNumber": {
270 +
          "description": "House or building number.",
271 +
          "maxLength": 32,
272 +
          "type": "string"
273 +
        },
274 +
        "postcode": {
275 +
          "description": "Postal code.",
276 +
          "maxLength": 32,
277 +
          "type": "string"
278 +
        },
279 +
        "state": {
280 +
          "description": "Region or state.",
281 +
          "maxLength": 200,
282 +
          "type": "string"
283 +
        },
284 +
        "street": {
285 +
          "description": "Street or road name.",
286 +
          "maxLength": 200,
287 +
          "type": "string"
288 +
        },
289 +
        "suburb": {
290 +
          "description": "Neighbourhood, quarter or suburb.",
291 +
          "maxLength": 200,
292 +
          "type": "string"
293 +
        }
294 +
      },
295 +
      "type": "object"
296 +
    },
297 +
    "osmDetails": {
298 +
      "description": "Address and tags in OpenStreetMap's vocabulary: a copy of what OpenStreetMap knew about the linked feature at checkedAt, and/or what the person typed (editedAt). Data copied from OpenStreetMap is (c) OpenStreetMap contributors, available under the Open Database Licence (ODbL). Treat the values as suggestions: they can be wrong or out of date, and the user's own fields always win.",
299 +
      "properties": {
300 +
        "address": {
301 +
          "description": "The structured address OpenStreetMap has for the feature.",
302 +
          "ref": "#osmAddress",
303 +
          "type": "ref"
304 +
        },
305 +
        "checkedAt": {
306 +
          "description": "When the details were copied from OpenStreetMap. Absent for details that were only typed.",
307 +
          "format": "datetime",
308 +
          "type": "string"
309 +
        },
310 +
        "editedAt": {
311 +
          "description": "When the person last changed these details by hand, or typed them. Details with no checkedAt were never copied from OpenStreetMap.",
312 +
          "format": "datetime",
313 +
          "type": "string"
314 +
        },
315 +
        "tags": {
316 +
          "description": "Raw OpenStreetMap tags (key and value) of the feature, such as cuisine, wheelchair or wikidata. Tags already stored in other fields (name, website, phone, opening hours) and OpenStreetMap-internal tags (source, note, fixme) are left out. At most 60.",
317 +
          "items": {
318 +
            "ref": "#osmTag",
319 +
            "type": "ref"
320 +
          },
321 +
          "maxLength": 60,
322 +
          "type": "array"
323 +
        }
324 +
      },
325 +
      "type": "object"
326 +
    },
327 +
    "osmTag": {
328 +
      "description": "One OpenStreetMap tag.",
329 +
      "properties": {
330 +
        "key": {
331 +
          "description": "The tag key, for example cuisine.",
332 +
          "maxLength": 64,
333 +
          "type": "string"
334 +
        },
335 +
        "value": {
336 +
          "description": "The tag value, for example italian;pizza. Values over 255 characters are not stored.",
337 +
          "maxGraphemes": 255,
338 +
          "maxLength": 1024,
339 +
          "type": "string"
340 +
        }
341 +
      },
342 +
      "required": [
343 +
        "key",
344 +
        "value"
345 +
      ],
346 +
      "type": "object"
227 347
    }
228 348
  },
229 349
  "id": "app.placita.place",
230 350
  "lexicon": 1
231 351
}

Compare Other Versions

Lexicon Garden

@