full diff

social.grain.gallery.defs

grain.social +87 −0
From
bafyreibtgizzj26rducti7zuxydxr7um3ynd4zzrayp7abhwyojw6k6zau indexed 2026-03-19 20:24 UTC View this version
To
bafyreifjxxz4e5ebsd5yaxlks74vt7vs5op2e72caxpvcgegxxrxm4n45q indexed 2026-10-31 17:04 UTC View this version

Compatibility

breaking 1 breaking change, 50 non-breaking changes.

Breaking changes (1)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "social.grain.gallery.defs#crossPostInfo", src: "social.grain.gallery.defs#crossPostInfo", tgt: "social.grain.gallery.defs#crossPostInfo.url", kind: "prop", name: Some("url") }
Non-breaking changes (50)
  • AddedVertex AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.address" }
  • AddedVertex AddedVertex { vertex_id: "community.lexicon.location.hthree" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#crossPostInfo" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#crossPostInfo.url" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.address" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.cameras" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.cameras:items" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.commentCount" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.createdAt" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.crossPost" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.description" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.facets" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.facets:items" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favCount" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favedByFollowing" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favedByFollowing:items" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.group" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.location" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.locationDisplay" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.title" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.viewer" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#viewerState" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.gallery.defs#viewerState.fav" }
  • AddedVertex AddedVertex { vertex_id: "social.grain.group.defs#groupRef" }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.address", kind: "prop", name: Some("address") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.cameras", kind: "prop", name: Some("cameras") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.commentCount", kind: "prop", name: Some("commentCount") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.createdAt", kind: "prop", name: Some("createdAt") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.crossPost", kind: "prop", name: Some("crossPost") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.description", kind: "prop", name: Some("description") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.facets", kind: "prop", name: Some("facets") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.favCount", kind: "prop", name: Some("favCount") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.favedByFollowing", kind: "prop", name: Some("favedByFollowing") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.group", kind: "prop", name: Some("group") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.location", kind: "prop", name: Some("location") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.locationDisplay", kind: "prop", name: Some("locationDisplay") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.title", kind: "prop", name: Some("title") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.viewer", kind: "prop", name: Some("viewer") }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.address", tgt: "community.lexicon.location.address", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.cameras", tgt: "social.grain.gallery.defs#galleryView.cameras:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.crossPost", tgt: "social.grain.gallery.defs#crossPostInfo", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.facets", tgt: "social.grain.gallery.defs#galleryView.facets:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.facets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.favedByFollowing", tgt: "social.grain.gallery.defs#galleryView.favedByFollowing:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.favedByFollowing:items", tgt: "social.grain.actor.defs#profileView", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.group", tgt: "social.grain.group.defs#groupRef", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.location", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#galleryView.viewer", tgt: "social.grain.gallery.defs#viewerState", kind: "ref", name: None }
  • AddedEdge AddedEdge { src: "social.grain.gallery.defs#viewerState", tgt: "social.grain.gallery.defs#viewerState.fav", kind: "prop", name: Some("fav") }

Migration guidance

Added

  • AddedVertex { vertex_id: "app.bsky.richtext.facet" }
  • AddedVertex { vertex_id: "community.lexicon.location.address" }
  • AddedVertex { vertex_id: "community.lexicon.location.hthree" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#crossPostInfo" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#crossPostInfo.url" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.address" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.cameras" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.cameras:items" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.commentCount" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.createdAt" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.crossPost" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.description" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.facets" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.facets:items" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favCount" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favedByFollowing" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.favedByFollowing:items" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.group" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.location" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.locationDisplay" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.title" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#galleryView.viewer" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#viewerState" }
  • AddedVertex { vertex_id: "social.grain.gallery.defs#viewerState.fav" }
  • AddedVertex { vertex_id: "social.grain.group.defs#groupRef" }

Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "social.grain.gallery.defs#crossPostInfo", src: "social.grain.gallery.defs#crossPostInfo", tgt: "social.grain.gallery.defs#crossPostInfo.url", kind: "prop", name: Some("url") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.address", kind: "prop", name: Some("address") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.cameras", kind: "prop", name: Some("cameras") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.commentCount", kind: "prop", name: Some("commentCount") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.createdAt", kind: "prop", name: Some("createdAt") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.crossPost", kind: "prop", name: Some("crossPost") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.description", kind: "prop", name: Some("description") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.facets", kind: "prop", name: Some("facets") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.favCount", kind: "prop", name: Some("favCount") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.favedByFollowing", kind: "prop", name: Some("favedByFollowing") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.group", kind: "prop", name: Some("group") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.location", kind: "prop", name: Some("location") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.locationDisplay", kind: "prop", name: Some("locationDisplay") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.title", kind: "prop", name: Some("title") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView", tgt: "social.grain.gallery.defs#galleryView.viewer", kind: "prop", name: Some("viewer") }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.address", tgt: "community.lexicon.location.address", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.cameras", tgt: "social.grain.gallery.defs#galleryView.cameras:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.crossPost", tgt: "social.grain.gallery.defs#crossPostInfo", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.facets", tgt: "social.grain.gallery.defs#galleryView.facets:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.facets:items", tgt: "app.bsky.richtext.facet", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.favedByFollowing", tgt: "social.grain.gallery.defs#galleryView.favedByFollowing:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.favedByFollowing:items", tgt: "social.grain.actor.defs#profileView", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.group", tgt: "social.grain.group.defs#groupRef", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.location", tgt: "community.lexicon.location.hthree", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#galleryView.viewer", tgt: "social.grain.gallery.defs#viewerState", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "social.grain.gallery.defs#viewerState", tgt: "social.grain.gallery.defs#viewerState.fav", kind: "prop", name: Some("fav") }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
4 "crossPostInfo": {
5 "properties": {
6 "url": {
7 "description": "URL to the cross-posted Bluesky post.",
8 "format": "uri",
9 "type": "string"
10 }
11 },
12 "required": [
13 "url"
14 ],
15 "type": "object"
16 },
417 "galleryView": {
518 "properties": {
19 "address": {
20 "ref": "community.lexicon.location.address",
21 "type": "ref"
22 },
23 "cameras": {
24 "description": "List of camera make and models used in this gallery derived from EXIF data.",
25 "items": {
26 "type": "string"
27 },
28 "type": "array"
29 },
630 "cid": {
731 "format": "cid",
832 "type": "string"
933 },
34 "commentCount": {
35 "type": "integer"
36 },
37 "createdAt": {
38 "format": "datetime",
39 "type": "string"
40 },
1041 "creator": {
1142 "ref": "social.grain.actor.defs#profileView",
1243 "type": "ref"
1344 },
45 "crossPost": {
46 "ref": "#crossPostInfo",
47 "type": "ref"
48 },
49 "description": {
50 "type": "string"
51 },
52 "facets": {
53 "description": "Annotations of description text (mentions, URLs, hashtags, etc)",
54 "items": {
55 "ref": "app.bsky.richtext.facet",
56 "type": "ref"
57 },
58 "type": "array"
59 },
60 "favCount": {
61 "type": "integer"
62 },
63 "favedByFollowing": {
64 "description": "Profiles of accounts the viewer follows who favorited this gallery. Capped for display — see favCount for the total. Excludes the viewer.",
65 "items": {
66 "ref": "social.grain.actor.defs#profileView",
67 "type": "ref"
68 },
69 "type": "array"
70 },
71 "group": {
72 "description": "The group whose pool this gallery is in, if any.",
73 "ref": "social.grain.group.defs#groupRef",
74 "type": "ref"
75 },
1476 "indexedAt": {
1577 "format": "datetime",
1678 "type": "string"
1779 },
1880 "items": {
1981 "items": {
2082 "refs": [
2183 "social.grain.photo.defs#photoView"
2284 ],
2385 "type": "union"
2486 },
2587 "type": "array"
2688 },
2789 "labels": {
2890 "items": {
2991 "ref": "com.atproto.label.defs#label",
3092 "type": "ref"
3193 },
3294 "type": "array"
3395 },
96 "location": {
97 "ref": "community.lexicon.location.hthree",
98 "type": "ref"
99 },
100 "locationDisplay": {
101 "description": "Formatted location label for display.",
102 "type": "string"
103 },
34104 "record": {
35105 "type": "unknown"
36106 },
107 "title": {
108 "type": "string"
109 },
37110 "uri": {
38111 "format": "at-uri",
39112 "type": "string"
113 },
114 "viewer": {
115 "ref": "#viewerState",
116 "type": "ref"
40117 }
41118 },
42119 "required": [
43120 "uri",
44121 "cid",
45122 "creator",
46123 "record",
47124 "indexedAt"
48125 ],
49126 "type": "object"
127 },
128 "viewerState": {
129 "description": "Metadata about the requesting account's relationship with the subject content. Only has meaningful content for authed requests.",
130 "properties": {
131 "fav": {
132 "format": "at-uri",
133 "type": "string"
134 }
135 },
136 "type": "object"
50137 }
51138 },
52139 "id": "social.grain.gallery.defs",
53140 "lexicon": 1
54141}

Compare other versions