com.pimstash.carcare.vehicle

lexicons.pimstash.com

Schema Diff

+71 -3

From

CID
bafyreid4as2htty...
Indexed At
2026-10-16 11:35 UTC
View this version

To

CID
bafyreigxxsvy2um...
Indexed At
2026-10-16 22:15 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

3 breaking changes, 24 non-breaking changes.

Breaking Changes (3)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.pimstash.carcare.vehicle#link", src: "com.pimstash.carcare.vehicle#link", tgt: "com.pimstash.carcare.vehicle#link.url", kind: "prop", name: Some("url") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "com.pimstash.carcare.vehicle:body", src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.odometerMeters", kind: "prop", name: Some("odometerMeters") }
  • ConstraintAdded ConstraintAdded { vertex_id: "com.pimstash.carcare.vehicle:body.name", sort: "minLength", value: "1" }
Non-Breaking Changes (24)
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link.label" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link.url" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.cover" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.engine" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.links" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.links:items" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.notes" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.odometerAt" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.odometerMeters" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.updatedAt" }
  • AddedVertex AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.vin" }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle#link", tgt: "com.pimstash.carcare.vehicle#link.label", kind: "prop", name: Some("label") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.cover", kind: "prop", name: Some("cover") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.engine", kind: "prop", name: Some("engine") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.links", kind: "prop", name: Some("links") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.notes", kind: "prop", name: Some("notes") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.odometerAt", kind: "prop", name: Some("odometerAt") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.vin", kind: "prop", name: Some("vin") }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body.links", tgt: "com.pimstash.carcare.vehicle:body.links:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "com.pimstash.carcare.vehicle:body.links:items", tgt: "com.pimstash.carcare.vehicle#link", kind: "ref", name: None }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "com.pimstash.carcare.vehicle:body.year", sort: "maximum", old_value: "3000", new_value: "9999" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "com.pimstash.carcare.vehicle:body.year", sort: "minimum", old_value: "1886", new_value: "1" }

Migration Guidance

Added Elements

  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link.label" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle#link.url" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.cover" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.engine" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.links" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.links:items" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.notes" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.odometerAt" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.odometerMeters" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.updatedAt" }
  • AddedVertex { vertex_id: "com.pimstash.carcare.vehicle:body.vin" }

Constraint Changes

  • ConstraintAdded ConstraintAdded { vertex_id: "com.pimstash.carcare.vehicle:body.name", sort: "minLength", value: "1" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "com.pimstash.carcare.vehicle:body.year", sort: "minimum", old_value: "1886", new_value: "1" }
  • ConstraintRelaxed ConstraintRelaxed { vertex_id: "com.pimstash.carcare.vehicle:body.year", sort: "maximum", old_value: "3000", new_value: "9999" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "com.pimstash.carcare.vehicle#link", src: "com.pimstash.carcare.vehicle#link", tgt: "com.pimstash.carcare.vehicle#link.url", kind: "prop", name: Some("url") }
  • Breaking: RequiredEdgeAdded { vertex_id: "com.pimstash.carcare.vehicle:body", src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.odometerMeters", kind: "prop", name: Some("odometerMeters") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle#link", tgt: "com.pimstash.carcare.vehicle#link.label", kind: "prop", name: Some("label") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.cover", kind: "prop", name: Some("cover") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.engine", kind: "prop", name: Some("engine") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.links", kind: "prop", name: Some("links") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.notes", kind: "prop", name: Some("notes") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.odometerAt", kind: "prop", name: Some("odometerAt") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.updatedAt", kind: "prop", name: Some("updatedAt") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body", tgt: "com.pimstash.carcare.vehicle:body.vin", kind: "prop", name: Some("vin") }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body.links", tgt: "com.pimstash.carcare.vehicle:body.links:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "com.pimstash.carcare.vehicle:body.links:items", tgt: "com.pimstash.carcare.vehicle#link", kind: "ref", name: None }
1 1
{
2 2
  "$type": "com.atproto.lexicon.schema",
3 3
  "defs": {
4 +
    "link": {
5 +
      "description": "A labelled link: a manual, a parts page, a forum thread.",
6 +
      "properties": {
7 +
        "label": {
8 +
          "maxGraphemes": 100,
9 +
          "maxLength": 1000,
10 +
          "type": "string"
11 +
        },
12 +
        "url": {
13 +
          "format": "uri",
14 +
          "maxLength": 3000,
15 +
          "type": "string"
16 +
        }
17 +
      },
18 +
      "required": [
19 +
        "url"
20 +
      ],
21 +
      "type": "object"
22 +
    },
4 23
    "main": {
24 +
      "description": "A Vehicle in Car Care: one car, truck or bike whose maintenance is tracked. Its Service Items reference it by record key.",
5 25
      "key": "any",
6 26
      "record": {
7 27
        "properties": {
28 +
          "cover": {
29 +
            "accept": [
30 +
              "image/jpeg",
31 +
              "image/webp",
32 +
              "image/avif"
33 +
            ],
34 +
            "maxSize": 1000000,
35 +
            "type": "blob"
36 +
          },
8 37
          "createdAt": {
9 38
            "format": "datetime",
10 39
            "type": "string"
11 40
          },
41 +
          "engine": {
42 +
            "maxGraphemes": 100,
43 +
            "maxLength": 1000,
44 +
            "type": "string"
45 +
          },
46 +
          "links": {
47 +
            "items": {
48 +
              "ref": "#link",
49 +
              "type": "ref"
50 +
            },
51 +
            "maxLength": 100,
52 +
            "type": "array"
53 +
          },
12 54
          "make": {
13 55
            "maxGraphemes": 100,
14 56
            "maxLength": 1000,
15 57
            "type": "string"
16 58
          },
17 59
          "model": {
18 60
            "maxGraphemes": 100,
19 61
            "maxLength": 1000,
20 62
            "type": "string"
21 63
          },
22 64
          "name": {
23 65
            "maxGraphemes": 100,
24 66
            "maxLength": 1000,
67 +
            "minLength": 1,
25 68
            "type": "string"
26 69
          },
70 +
          "notes": {
71 +
            "maxGraphemes": 1000,
72 +
            "maxLength": 10000,
73 +
            "type": "string"
74 +
          },
75 +
          "odometerAt": {
76 +
            "description": "The calendar date of the reading, as a datetime at UTC midnight read in UTC.",
77 +
            "format": "datetime",
78 +
            "type": "string"
79 +
          },
80 +
          "odometerMeters": {
81 +
            "description": "Latest odometer reading, in whole meters.",
82 +
            "minimum": 0,
83 +
            "type": "integer"
84 +
          },
85 +
          "updatedAt": {
86 +
            "format": "datetime",
87 +
            "type": "string"
88 +
          },
89 +
          "vin": {
90 +
            "description": "Vehicle identification number. The Car Care App keeps it on the device and never writes it here; a reader should expect it absent.",
91 +
            "maxGraphemes": 100,
92 +
            "maxLength": 1000,
93 +
            "type": "string"
94 +
          },
27 95
          "year": {
28 -
            "maximum": 3000,
29 -
            "minimum": 1886,
96 +
            "maximum": 9999,
97 +
            "minimum": 1,
30 98
            "type": "integer"
31 99
          }
32 100
        },
33 101
        "required": [
34 102
          "name",
103 +
          "odometerMeters",
35 104
          "createdAt"
36 105
        ],
37 106
        "type": "object"
38 107
      },
39 108
      "type": "record"
40 109
    }
41 110
  },
42 -
  "description": "DRAFT (spike, 2026-10-15). A Vehicle in a Car Care garage. Shape will change before launch.",
43 111
  "id": "com.pimstash.carcare.vehicle",
44 112
  "lexicon": 1
45 113
}

Compare Other Versions

Lexicon Garden

@