app.winesky.imageSet

winesky.app

Schema Diff

+21 -16

From

CID
bafyreiacp46e7al...
Indexed At
2026-02-18 18:26 UTC
View this version

To

CID
bafyreic3dfstckl...
Indexed At
2026-07-28 17:13 UTC
View this version

Compatibility Analysis

Breaking Changes Detected

9 breaking changes, 4 non-breaking changes.

Breaking Changes (9)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.cid", kind: "prop", name: Some("cid") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.atUri", kind: "prop", name: Some("atUri") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.atUri", kind: "prop", name: Some("atUri") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.cid", kind: "prop", name: Some("cid") }
  • RemovedVertex RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.atUri" }
  • RemovedVertex RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.cid" }
  • KindChanged KindChanged { vertex_id: "app.winesky.imageSet:body.parent", old_kind: "object", new_kind: "ref" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.winesky.imageSet:body.parent", sort: "ref", value: "#strongRef" }
  • ConstraintTightened ConstraintTightened { vertex_id: "app.winesky.imageSet:body.origin", sort: "enum", old_value: "IDENTIFY_WINE,SOMMELIER,CSV_IMPORT,OTHER", new_value: "IDENTIFY_WINE,SEARCH,SOMMELIER,CSV_IMPORT,WINE_REVIEW" }
Non-Breaking Changes (4)
  • AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef" }
  • AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.atUri" }
  • AddedVertex AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.cid" }
  • AddedEdge AddedEdge { src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet#strongRef", kind: "ref", name: None }

Migration Guidance

Removed Elements

  • RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.atUri" }
  • RemovedVertex { vertex_id: "app.winesky.imageSet:body.parent.cid" }

Added Elements

  • AddedVertex { vertex_id: "app.winesky.imageSet#strongRef" }
  • AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.atUri" }
  • AddedVertex { vertex_id: "app.winesky.imageSet#strongRef.cid" }

Constraint Changes

  • ConstraintTightened ConstraintTightened { vertex_id: "app.winesky.imageSet:body.origin", sort: "enum", old_value: "IDENTIFY_WINE,SOMMELIER,CSV_IMPORT,OTHER", new_value: "IDENTIFY_WINE,SEARCH,SOMMELIER,CSV_IMPORT,WINE_REVIEW" }
  • ConstraintAdded ConstraintAdded { vertex_id: "app.winesky.imageSet:body.parent", sort: "ref", value: "#strongRef" }

Additional Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.cid", kind: "prop", name: Some("cid") }
  • Breaking: RequiredEdgeAdded { vertex_id: "app.winesky.imageSet#strongRef", src: "app.winesky.imageSet#strongRef", tgt: "app.winesky.imageSet#strongRef.atUri", kind: "prop", name: Some("atUri") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.atUri", kind: "prop", name: Some("atUri") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "app.winesky.imageSet:body.parent", src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet:body.parent.cid", kind: "prop", name: Some("cid") }
  • Breaking: KindChanged { vertex_id: "app.winesky.imageSet:body.parent", old_kind: "object", new_kind: "ref" }
  • Non-breaking: AddedEdge { src: "app.winesky.imageSet:body.parent", tgt: "app.winesky.imageSet#strongRef", kind: "ref", name: None }
1 1
{
2 2
  "id": "app.winesky.imageSet",
3 3
  "defs": {
4 4
    "main": {
5 5
      "key": "tid",
6 6
      "type": "record",
7 7
      "record": {
8 8
        "type": "object",
9 9
        "required": [
10 10
          "origin",
11 11
          "createdAt"
12 12
        ],
13 13
        "properties": {
14 14
          "images": {
15 15
            "type": "array",
16 16
            "items": {
17 17
              "type": "blob",
18 18
              "accept": [
19 19
                "image/jpeg",
20 20
                "image/png"
21 21
              ],
22 22
              "maxSize": 3000000
23 23
            },
24 24
            "maxLength": 4,
25 25
            "minLength": 1
26 26
          },
27 27
          "origin": {
28 28
            "enum": [
29 29
              "IDENTIFY_WINE",
30 +
              "SEARCH",
30 31
              "SOMMELIER",
31 32
              "CSV_IMPORT",
32 -
              "OTHER"
33 +
              "WINE_REVIEW"
33 34
            ],
34 35
            "type": "string",
35 36
            "maxLength": 50
36 37
          },
37 38
          "parent": {
38 -
            "type": "object",
39 -
            "required": [
40 -
              "cid",
41 -
              "atUri"
42 -
            ],
43 -
            "properties": {
44 -
              "cid": {
45 -
                "type": "string",
46 -
                "format": "cid"
47 -
              },
48 -
              "atUri": {
49 -
                "type": "string",
50 -
                "format": "at-uri"
51 -
              }
52 -
            }
39 +
            "ref": "#strongRef",
40 +
            "type": "ref"
53 41
          },
54 42
          "createdAt": {
55 43
            "type": "string",
56 44
            "format": "datetime"
57 45
          },
58 46
          "description": {
59 47
            "type": "string",
60 48
            "maxLength": 5000
61 49
          }
62 50
        }
63 51
      },
64 52
      "description": "A set of Winesky-uploaded images"
53 +
    },
54 +
    "strongRef": {
55 +
      "type": "object",
56 +
      "required": [
57 +
        "cid",
58 +
        "atUri"
59 +
      ],
60 +
      "properties": {
61 +
        "cid": {
62 +
          "type": "string",
63 +
          "format": "cid"
64 +
        },
65 +
        "atUri": {
66 +
          "type": "string",
67 +
          "format": "at-uri"
68 +
        }
69 +
      }
65 70
    }
66 71
  },
67 72
  "$type": "com.atproto.lexicon.schema",
68 73
  "lexicon": 1
69 74
}

Compare Other Versions

Lexicon Garden

@