blue.atroom.room.layout
Schema Diff
+8 -6
Compatibility Analysis
Breaking Changes Detected
2 breaking changes, 2 non-breaking changes.
Breaking Changes (2)
- RemovedVertex RemovedVertex { vertex_id: "blue.atroom.room.layout#furnishing.object" }
- RemovedEdge RemovedEdge { src: "blue.atroom.room.layout#furnishing", tgt: "blue.atroom.room.layout#furnishing.object", kind: "prop", name: Some("object") }
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "blue.atroom.room.layout#furnishing.roomObject" }
- AddedEdge AddedEdge { src: "blue.atroom.room.layout#furnishing", tgt: "blue.atroom.room.layout#furnishing.roomObject", kind: "prop", name: Some("roomObject") }
Migration Guidance
Removed Elements
RemovedVertex { vertex_id: "blue.atroom.room.layout#furnishing.object" }
Added Elements
AddedVertex { vertex_id: "blue.atroom.room.layout#furnishing.roomObject" }
Additional Notes
- Breaking: RemovedEdge { src: "blue.atroom.room.layout#furnishing", tgt: "blue.atroom.room.layout#furnishing.object", kind: "prop", name: Some("object") }
- Non-breaking: AddedEdge { src: "blue.atroom.room.layout#furnishing", tgt: "blue.atroom.room.layout#furnishing.roomObject", kind: "prop", name: Some("roomObject") }
1
1
{
2
2
"id": "blue.atroom.room.layout",
3
3
"defs": {
4
4
"main": {
5
5
"key": "any",
6
6
"type": "record",
7
7
"record": {
8
8
"type": "object",
9
9
"required": [
10
10
"size",
11
11
"floor",
12
12
"wall",
13
13
"furnishings",
14
14
"createdAt"
15
15
],
16
16
"properties": {
17
17
"size": {
18
18
"type": "integer",
19
19
"maximum": 20000,
20
20
"minimum": 1000,
21
21
"description": "Room size in millimeters (square room)."
22
22
},
23
23
"wall": {
24
24
"ref": "#wall",
25
25
"type": "ref"
26
26
},
27
27
"floor": {
28
28
"ref": "#floor",
29
29
"type": "ref"
30
30
},
31
31
"createdAt": {
32
32
"type": "string",
33
33
"format": "datetime"
34
34
},
35
35
"furnishings": {
36
36
"type": "array",
37
37
"items": {
38
38
"ref": "#furnishing",
39
39
"type": "ref"
40
40
},
41
41
"maxLength": 100
42
42
}
43
43
}
44
44
},
45
45
"description": "A room layout with placed objects."
46
46
},
47
47
"wall": {
48
48
"type": "object",
49
49
"required": [
50
50
"height",
51
51
"thickness",
52
52
"surface"
53
53
],
54
54
"properties": {
55
55
"height": {
56
56
"type": "integer",
57
57
"description": "Wall height in millimeters."
58
58
},
59
59
"surface": {
60
60
"ref": "#surface",
61
61
"type": "ref"
62
62
},
63
63
"thickness": {
64
64
"type": "integer",
65
65
"description": "Wall thickness in millimeters."
66
66
}
67
67
},
68
68
"description": "Wall configuration."
69
69
},
70
70
"color": {
71
71
"type": "object",
72
72
"required": [
73
73
"red",
74
74
"green",
75
75
"blue"
76
76
],
77
77
"properties": {
78
78
"red": {
79
79
"type": "integer",
80
80
"maximum": 255,
81
81
"minimum": 0
82
82
},
83
83
"blue": {
84
84
"type": "integer",
85
85
"maximum": 255,
86
86
"minimum": 0
87
87
},
88
88
"green": {
89
89
"type": "integer",
90
90
"maximum": 255,
91
91
"minimum": 0
92
92
}
93
93
},
94
94
"description": "RGB color with 8-bit channels."
95
95
},
96
96
"floor": {
97
97
"type": "object",
98
98
"required": [
99
99
"surface"
100
100
],
101
101
"properties": {
102
102
"surface": {
103
103
"ref": "#surface",
104
104
"type": "ref"
105
105
}
106
106
}
107
107
},
108
108
"surface": {
109
109
"type": "object",
110
110
"required": [
111
111
"color"
112
112
],
113
113
"properties": {
114
114
"color": {
115
115
"ref": "#color",
116
116
"type": "ref"
117
117
},
118
118
"texture": {
119
119
"type": "blob",
120
120
"accept": [
121
121
"image/png",
122
122
"image/jpeg",
123
123
"image/webp"
124
124
],
125
125
"maxSize": 1048576,
126
126
"description": "Texture image."
127
127
},
128
128
"textureTiling": {
129
129
"type": "array",
130
130
"items": {
131
131
"type": "integer"
132
132
},
133
133
"maxLength": 2,
134
134
"minLength": 2,
135
135
"description": "Texture tiling [u, v]."
136
136
}
137
137
}
138
138
},
139
139
"furnishing": {
140
140
"type": "object",
141
141
"required": [
142
-
"object",
142
+
"roomObject",
143
143
"position",
144
144
"rotation"
145
145
],
146
146
"properties": {
147
-
"object": {
148
-
"ref": "com.atproto.repo.strongRef",
149
-
"type": "ref",
150
-
"description": "Strong reference to a blue.atroom.room.object record."
151
-
},
152
147
"position": {
153
148
"type": "array",
154
149
"items": {
155
150
"type": "integer"
156
151
},
152
+
"maxLength": 3,
157
153
"minLength": 3,
158
154
"description": "Position [x, y, z] in millimeters."
159
155
},
160
156
"rotation": {
161
157
"type": "array",
162
158
"items": {
163
159
"type": "integer"
164
160
},
161
+
"maxLength": 3,
165
162
"minLength": 3,
166
163
"description": "Euler rotation [x, y, z] in degrees."
164
+
},
165
+
"roomObject": {
166
+
"ref": "com.atproto.repo.strongRef",
167
+
"type": "ref",
168
+
"description": "Strong reference to a blue.atroom.room.object record."
167
169
}
168
170
},
169
171
"description": "A placed object in the room."
170
172
}
171
173
},
172
174
"$type": "com.atproto.lexicon.schema",
173
175
"lexicon": 1
174
176
}