full diff

community.cheese.log

cheese.community +21 −11
From
bafyreif7mhepie2ri6sbvsd5cvfuzhxyx4ybjgtemsrsl2tzxdb4qbp5sq indexed 2026-07-06 07:13 UTC View this version
To
bafyreie6u4btqoifkfm5sas6vza5pao6p674u7uq3so425mynnne63rysa indexed 2026-08-30 02:51 UTC View this version

Compatibility

breaking 7 breaking changes, 7 non-breaking changes.

Breaking changes (7)
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeses", kind: "prop", name: Some("cheeses") }
  • RequiredEdgeAdded RequiredEdgeAdded { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeseRefs", kind: "prop", name: Some("cheeseRefs") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeseRef", kind: "prop", name: Some("cheeseRef") }
  • RequiredEdgeRemoved RequiredEdgeRemoved { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheese", kind: "prop", name: Some("cheese") }
  • RemovedVertex RemovedVertex { vertex_id: "community.cheese.log:body.cheese" }
  • RemovedVertex RemovedVertex { vertex_id: "community.cheese.log:body.cheeseRef" }
  • RemovedEdge RemovedEdge { src: "community.cheese.log:body.cheese", tgt: "community.cheese.log#cheese", kind: "ref", name: None }
Non-breaking changes (7)
  • AddedVertex AddedVertex { vertex_id: "community.cheese.log:body.cheeseRefs" }
  • AddedVertex AddedVertex { vertex_id: "community.cheese.log:body.cheeseRefs:items" }
  • AddedVertex AddedVertex { vertex_id: "community.cheese.log:body.cheeses" }
  • AddedVertex AddedVertex { vertex_id: "community.cheese.log:body.cheeses:items" }
  • AddedEdge AddedEdge { src: "community.cheese.log:body.cheeseRefs", tgt: "community.cheese.log:body.cheeseRefs:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "community.cheese.log:body.cheeses", tgt: "community.cheese.log:body.cheeses:items", kind: "items", name: None }
  • AddedEdge AddedEdge { src: "community.cheese.log:body.cheeses:items", tgt: "community.cheese.log#cheese", kind: "ref", name: None }

Migration guidance

Removed

  • RemovedVertex { vertex_id: "community.cheese.log:body.cheese" }
  • RemovedVertex { vertex_id: "community.cheese.log:body.cheeseRef" }

Added

  • AddedVertex { vertex_id: "community.cheese.log:body.cheeseRefs" }
  • AddedVertex { vertex_id: "community.cheese.log:body.cheeseRefs:items" }
  • AddedVertex { vertex_id: "community.cheese.log:body.cheeses" }
  • AddedVertex { vertex_id: "community.cheese.log:body.cheeses:items" }

Notes

  • Breaking: RequiredEdgeAdded { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeses", kind: "prop", name: Some("cheeses") }
  • Breaking: RequiredEdgeAdded { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeseRefs", kind: "prop", name: Some("cheeseRefs") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheeseRef", kind: "prop", name: Some("cheeseRef") }
  • Breaking: RequiredEdgeRemoved { vertex_id: "community.cheese.log:body", src: "community.cheese.log:body", tgt: "community.cheese.log:body.cheese", kind: "prop", name: Some("cheese") }
  • Breaking: RemovedEdge { src: "community.cheese.log:body.cheese", tgt: "community.cheese.log#cheese", kind: "ref", name: None }
  • Non-breaking: AddedEdge { src: "community.cheese.log:body.cheeseRefs", tgt: "community.cheese.log:body.cheeseRefs:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "community.cheese.log:body.cheeses", tgt: "community.cheese.log:body.cheeses:items", kind: "items", name: None }
  • Non-breaking: AddedEdge { src: "community.cheese.log:body.cheeses:items", tgt: "community.cheese.log#cheese", kind: "ref", name: None }

Changes

11{
22 "$type": "com.atproto.lexicon.schema",
33 "defs": {
44 "cheese": {
55 "description": "Cheese type fields embedded in a log entry",
66 "properties": {
77 "agedWeeks": {
88 "description": "Typical aging time in weeks",
99 "minimum": 0,
1010 "type": "integer"
1111 },
1212 "aka": {
1313 "description": "Also-known-as names for the cheese",
1414 "items": {
1515 "maxLength": 200,
1616 "type": "string"
1717 },
1818 "maxLength": 20,
1919 "type": "array"
2020 },
2121 "availableMonths": {
2222 "description": "Months the cheese is available (1-12) if seasonal",
2323 "items": {
2424 "maximum": 12,
2525 "minimum": 1,
2626 "type": "integer"
2727 },
2828 "maxLength": 12,
2929 "type": "array"
3030 },
3131 "description": {
3232 "description": "General description of the cheese",
3333 "maxLength": 5000,
3434 "type": "string"
3535 },
3636 "link": {
3737 "description": "Optional reference link about the cheese",
3838 "format": "uri",
3939 "maxLength": 500,
4040 "type": "string"
4141 },
4242 "milk": {
4343 "description": "Milk source (e.g., cow, goat, sheep, buffalo, mixed)",
4444 "maxLength": 100,
4545 "type": "string"
4646 },
4747 "name": {
4848 "description": "Name of the cheese",
4949 "maxLength": 200,
5050 "type": "string"
5151 },
5252 "origin": {
5353 "description": "Geographic and producer origin of the cheese",
5454 "ref": "#origin",
5555 "type": "ref"
5656 },
5757 "pasteurized": {
5858 "description": "Whether the cheese is made from pasteurized milk",
5959 "type": "boolean"
6060 },
6161 "rind": {
6262 "description": "Rind type (e.g., washed, bloomy, natural)",
6363 "maxLength": 100,
6464 "type": "string"
6565 },
6666 "seasonal": {
6767 "description": "Whether the cheese has restricted seasonal availability",
6868 "type": "boolean"
6969 },
7070 "servingTempCelsius": {
7171 "description": "Recommended serving temperature range in Celsius",
7272 "ref": "#temperatureRange",
7373 "type": "ref"
7474 },
7575 "tastingNotes": {
7676 "description": "Tasting notes and flavor profile",
7777 "maxLength": 2000,
7878 "type": "string"
7979 },
8080 "texture": {
8181 "description": "Texture classification",
8282 "knownValues": [
8383 "soft",
8484 "semi-soft",
8585 "semi-hard",
8686 "hard",
8787 "blue"
8888 ],
8989 "maxLength": 50,
9090 "type": "string"
9191 }
9292 },
9393 "required": [
9494 "name"
9595 ],
9696 "type": "object"
9797 },
9898 "main": {
99 "description": "A personal log entry about cheese",
99 "description": "A personal log entry about one or more cheeses",
100100 "key": "tid",
101101 "record": {
102102 "properties": {
103103 "action": {
104104 "description": "What the user did or wants to do with the cheese (e.g., ate, bought, wishlisted)",
105105 "knownValues": [
106106 "ate",
107107 "bought",
108108 "wishlisted"
109109 ],
110110 "maxLength": 50,
111111 "type": "string"
112112 },
113 "cheese": {
114 "description": "Snapshot of the cheese type fields at the time of logging",
115 "ref": "#cheese",
116 "type": "ref"
113 "cheeseRefs": {
114 "description": "AT-URI references to the canonical cheese type records for this log entry (one or more)",
115 "items": {
116 "format": "at-uri",
117 "type": "string"
118 },
119 "maxLength": 20,
120 "minLength": 1,
121 "type": "array"
117122 },
118 "cheeseRef": {
119 "description": "AT-URI reference to the canonical cheese type record",
120 "format": "at-uri",
121 "type": "string"
123 "cheeses": {
124 "description": "Snapshots of the cheese type fields at the time of logging, aligned by index with cheeseRefs",
125 "items": {
126 "ref": "#cheese",
127 "type": "ref"
128 },
129 "maxLength": 20,
130 "minLength": 1,
131 "type": "array"
122132 },
123133 "createdAt": {
124134 "description": "Timestamp when the log was created",
125135 "format": "datetime",
126136 "type": "string"
127137 },
128138 "notes": {
129139 "description": "Personal notes about the cheese",
130140 "maxLength": 2000,
131141 "type": "string"
132142 },
133143 "photos": {
134144 "description": "Optional photos of the cheese",
135145 "items": {
136146 "ref": "#photo",
137147 "type": "ref"
138148 },
139149 "maxLength": 4,
140150 "type": "array"
141151 }
142152 },
143153 "required": [
144 "cheeseRef",
145 "cheese",
154 "cheeseRefs",
155 "cheeses",
146156 "action",
147157 "createdAt"
148158 ],
149159 "type": "object"
150160 },
151161 "type": "record"
152162 },
153163 "origin": {
154164 "description": "Geographic and producer origin of a cheese",
155165 "properties": {
156166 "country": {
157167 "maxLength": 100,
158168 "type": "string"
159169 },
160170 "producer": {
161171 "maxLength": 200,
162172 "type": "string"
163173 },
164174 "region": {
165175 "maxLength": 100,
166176 "type": "string"
167177 }
168178 },
169179 "type": "object"
170180 },
171181 "photo": {
172182 "accept": [
173183 "image/*"
174184 ],
175185 "description": "A photo of the cheese",
176186 "maxSize": 10000000,
177187 "type": "blob"
178188 },
179189 "temperatureRange": {
180190 "description": "A numeric range",
181191 "properties": {
182192 "max": {
183193 "description": "Maximum value",
184194 "type": "integer"
185195 },
186196 "min": {
187197 "description": "Minimum value",
188198 "type": "integer"
189199 }
190200 },
191201 "required": [
192202 "min",
193203 "max"
194204 ],
195205 "type": "object"
196206 }
197207 },
198208 "description": "A cheese log: take notes on buying, eating, or wanting to do either of those things with cheese",
199209 "id": "community.cheese.log",
200210 "lexicon": 1
201211}

Compare other versions