app.thedistance.activity
Schema Diff
+116 -0
Compatibility Analysis
Breaking Changes Detected
21 breaking changes, 45 non-breaking changes.
Breaking Changes (21)
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.weightedAvgPower", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.pressure", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationType", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.totalWork", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.apparentTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.perceivedExertion", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windBearing", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.dewpoint", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.avgTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationIntensity", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windGust", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.temperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.humidity", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationProbability", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.visibility", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.cloudCover", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windSpeed", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.maxTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.condition", sort: "maxLength", value: "128" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.elevationLoss", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.uvIndex", sort: "maxLength", value: "64" }
Non-Breaking Changes (45)
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.apparentTemperature" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.avgTemperature" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.cloudCover" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.condition" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.dewpoint" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.humidity" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.maxTemperature" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationIntensity" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationProbability" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationType" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.pressure" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.temperature" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.uvIndex" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.visibility" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.windBearing" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.windGust" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity#weather.windSpeed" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity:body.elevationLoss" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity:body.perceivedExertion" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity:body.totalWork" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity:body.weather" }
- AddedVertex AddedVertex { vertex_id: "app.thedistance.activity:body.weightedAvgPower" }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.apparentTemperature", kind: "prop", name: Some("apparentTemperature") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.avgTemperature", kind: "prop", name: Some("avgTemperature") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.cloudCover", kind: "prop", name: Some("cloudCover") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.condition", kind: "prop", name: Some("condition") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.dewpoint", kind: "prop", name: Some("dewpoint") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.humidity", kind: "prop", name: Some("humidity") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.maxTemperature", kind: "prop", name: Some("maxTemperature") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationIntensity", kind: "prop", name: Some("precipitationIntensity") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationProbability", kind: "prop", name: Some("precipitationProbability") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationType", kind: "prop", name: Some("precipitationType") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.pressure", kind: "prop", name: Some("pressure") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.temperature", kind: "prop", name: Some("temperature") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.uvIndex", kind: "prop", name: Some("uvIndex") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.visibility", kind: "prop", name: Some("visibility") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windBearing", kind: "prop", name: Some("windBearing") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windGust", kind: "prop", name: Some("windGust") }
- AddedEdge AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windSpeed", kind: "prop", name: Some("windSpeed") }
- AddedEdge AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.elevationLoss", kind: "prop", name: Some("elevationLoss") }
- AddedEdge AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.perceivedExertion", kind: "prop", name: Some("perceivedExertion") }
- AddedEdge AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.totalWork", kind: "prop", name: Some("totalWork") }
- AddedEdge AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.weather", kind: "prop", name: Some("weather") }
- AddedEdge AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.weightedAvgPower", kind: "prop", name: Some("weightedAvgPower") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "app.thedistance.activity#weather" }AddedVertex { vertex_id: "app.thedistance.activity#weather.apparentTemperature" }AddedVertex { vertex_id: "app.thedistance.activity#weather.avgTemperature" }AddedVertex { vertex_id: "app.thedistance.activity#weather.cloudCover" }AddedVertex { vertex_id: "app.thedistance.activity#weather.condition" }AddedVertex { vertex_id: "app.thedistance.activity#weather.dewpoint" }AddedVertex { vertex_id: "app.thedistance.activity#weather.humidity" }AddedVertex { vertex_id: "app.thedistance.activity#weather.maxTemperature" }AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationIntensity" }AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationProbability" }AddedVertex { vertex_id: "app.thedistance.activity#weather.precipitationType" }AddedVertex { vertex_id: "app.thedistance.activity#weather.pressure" }AddedVertex { vertex_id: "app.thedistance.activity#weather.temperature" }AddedVertex { vertex_id: "app.thedistance.activity#weather.uvIndex" }AddedVertex { vertex_id: "app.thedistance.activity#weather.visibility" }AddedVertex { vertex_id: "app.thedistance.activity#weather.windBearing" }AddedVertex { vertex_id: "app.thedistance.activity#weather.windGust" }AddedVertex { vertex_id: "app.thedistance.activity#weather.windSpeed" }AddedVertex { vertex_id: "app.thedistance.activity:body.elevationLoss" }AddedVertex { vertex_id: "app.thedistance.activity:body.perceivedExertion" }AddedVertex { vertex_id: "app.thedistance.activity:body.totalWork" }AddedVertex { vertex_id: "app.thedistance.activity:body.weather" }AddedVertex { vertex_id: "app.thedistance.activity:body.weightedAvgPower" }
Constraint Changes
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationIntensity", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.visibility", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.uvIndex", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.avgTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.humidity", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationProbability", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.condition", sort: "maxLength", value: "128" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.maxTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windGust", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windBearing", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.totalWork", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.perceivedExertion", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.windSpeed", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.temperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.apparentTemperature", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.cloudCover", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.precipitationType", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.elevationLoss", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity:body.weightedAvgPower", sort: "minimum", value: "0" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.pressure", sort: "maxLength", value: "64" }
- ConstraintAdded ConstraintAdded { vertex_id: "app.thedistance.activity#weather.dewpoint", sort: "maxLength", value: "64" }
Additional Notes
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.apparentTemperature", kind: "prop", name: Some("apparentTemperature") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.avgTemperature", kind: "prop", name: Some("avgTemperature") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.cloudCover", kind: "prop", name: Some("cloudCover") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.condition", kind: "prop", name: Some("condition") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.dewpoint", kind: "prop", name: Some("dewpoint") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.humidity", kind: "prop", name: Some("humidity") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.maxTemperature", kind: "prop", name: Some("maxTemperature") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationIntensity", kind: "prop", name: Some("precipitationIntensity") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationProbability", kind: "prop", name: Some("precipitationProbability") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.precipitationType", kind: "prop", name: Some("precipitationType") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.pressure", kind: "prop", name: Some("pressure") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.temperature", kind: "prop", name: Some("temperature") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.uvIndex", kind: "prop", name: Some("uvIndex") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.visibility", kind: "prop", name: Some("visibility") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windBearing", kind: "prop", name: Some("windBearing") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windGust", kind: "prop", name: Some("windGust") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity#weather", tgt: "app.thedistance.activity#weather.windSpeed", kind: "prop", name: Some("windSpeed") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.elevationLoss", kind: "prop", name: Some("elevationLoss") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.perceivedExertion", kind: "prop", name: Some("perceivedExertion") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.totalWork", kind: "prop", name: Some("totalWork") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.weather", kind: "prop", name: Some("weather") }
- Non-breaking: AddedEdge { src: "app.thedistance.activity:body", tgt: "app.thedistance.activity:body.weightedAvgPower", kind: "prop", name: Some("weightedAvgPower") }
1
1
{
2
2
"id": "app.thedistance.activity",
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
"sportType",
11
11
"startedAt",
12
12
"elapsedTime",
13
13
"movingTime",
14
14
"distance",
15
15
"createdAt"
16
16
],
17
17
"properties": {
18
18
"title": {
19
19
"type": "string",
20
20
"maxLength": 300,
21
21
"description": "User-provided name for the activity."
22
22
},
23
23
"device": {
24
24
"type": "string",
25
25
"maxLength": 300,
26
26
"description": "Name of the device that recorded the activity."
27
27
},
28
28
"images": {
29
29
"type": "array",
30
30
"items": {
31
31
"ref": "#image",
32
32
"type": "ref"
33
33
},
34
34
"maxLength": 8,
35
35
"description": "Photos from the activity."
36
36
},
37
37
"source": {
38
38
"type": "string",
39
39
"maxLength": 128,
40
40
"description": "Where the activity data was imported from.",
41
41
"knownValues": [
42
42
"garmin",
43
43
"strava",
44
44
"wahoo",
45
45
"manual",
46
46
"fit-file",
47
47
"gpx-file"
48
48
]
49
49
},
50
+
"weather": {
51
+
"ref": "#weather",
52
+
"type": "ref",
53
+
"description": "Weather conditions during the activity."
54
+
},
50
55
"avgPower": {
51
56
"type": "integer",
52
57
"minimum": 0,
53
58
"description": "Average power output in watts."
54
59
},
55
60
"avgSpeed": {
56
61
"type": "string",
57
62
"maxLength": 64,
58
63
"description": "Average speed in meters per second. String-encoded decimal number."
59
64
},
60
65
"calories": {
61
66
"type": "integer",
62
67
"minimum": 0,
63
68
"description": "Estimated calories burned."
64
69
},
65
70
"distance": {
66
71
"type": "string",
67
72
"maxLength": 64,
68
73
"description": "Total distance in meters. String-encoded decimal number, e.g. '51214.6'."
69
74
},
70
75
"maxPower": {
71
76
"type": "integer",
72
77
"minimum": 0,
73
78
"description": "Maximum power output in watts."
74
79
},
75
80
"maxSpeed": {
76
81
"type": "string",
77
82
"maxLength": 64,
78
83
"description": "Maximum speed in meters per second. String-encoded decimal number."
79
84
},
80
85
"polyline": {
81
86
"type": "string",
82
87
"maxLength": 20000,
83
88
"description": "Encoded polyline string representing a simplified, privacy-trimmed route for map display. Uses Google's encoded polyline algorithm format. Ingestion services should simplify polylines to fit within the 20,000 byte limit. This limit may be revisited if it proves insufficient."
84
89
},
85
90
"sourceId": {
86
91
"type": "string",
87
92
"maxLength": 256,
88
93
"description": "Identifier for this activity in the source system, e.g. a Strava activity ID."
89
94
},
90
95
"createdAt": {
91
96
"type": "string",
92
97
"format": "datetime",
93
98
"description": "Timestamp of when this record was created."
94
99
},
95
100
"sportType": {
96
101
"type": "string",
97
102
"maxLength": 128,
98
103
"description": "The type of activity.",
99
104
"knownValues": [
100
105
"ride"
101
106
]
102
107
},
103
108
"startedAt": {
104
109
"type": "string",
105
110
"format": "datetime",
106
111
"description": "When the activity started."
107
112
},
113
+
"totalWork": {
114
+
"type": "integer",
115
+
"minimum": 0,
116
+
"description": "Total mechanical work in kilojoules."
117
+
},
108
118
"avgCadence": {
109
119
"type": "integer",
110
120
"minimum": 0,
111
121
"description": "Average cadence in revolutions per minute."
112
122
},
113
123
"maxCadence": {
114
124
"type": "integer",
115
125
"minimum": 0,
116
126
"description": "Maximum cadence in revolutions per minute."
117
127
},
118
128
"movingTime": {
119
129
"type": "integer",
120
130
"minimum": 0,
121
131
"description": "Time spent in motion in seconds."
122
132
},
123
133
"description": {
124
134
"type": "string",
125
135
"maxLength": 3000,
126
136
"description": "User-provided description of the activity."
127
137
},
128
138
"elapsedTime": {
129
139
"type": "integer",
130
140
"minimum": 0,
131
141
"description": "Total elapsed time in seconds, including stopped time."
132
142
},
133
143
"avgHeartRate": {
134
144
"type": "integer",
135
145
"minimum": 0,
136
146
"description": "Average heart rate in beats per minute."
137
147
},
138
148
"maxHeartRate": {
139
149
"type": "integer",
140
150
"minimum": 0,
141
151
"description": "Maximum heart rate in beats per minute."
142
152
},
143
153
"elevationGain": {
144
154
"type": "string",
145
155
"maxLength": 64,
146
156
"description": "Total elevation gain in meters. String-encoded decimal number."
157
+
},
158
+
"elevationLoss": {
159
+
"type": "string",
160
+
"maxLength": 64,
161
+
"description": "Total elevation loss in meters. String-encoded decimal number."
162
+
},
163
+
"weightedAvgPower": {
164
+
"type": "integer",
165
+
"minimum": 0,
166
+
"description": "Normalized/weighted average power in watts."
167
+
},
168
+
"perceivedExertion": {
169
+
"type": "integer",
170
+
"minimum": 0,
171
+
"description": "Rate of perceived exertion (RPE), typically 1-10."
147
172
}
148
173
}
149
174
},
150
175
"description": "A recorded physical activity such as a bike ride."
151
176
},
152
177
"image": {
153
178
"type": "object",
154
179
"required": [
155
180
"image"
156
181
],
157
182
"properties": {
158
183
"alt": {
159
184
"type": "string",
160
185
"maxLength": 3000,
161
186
"description": "Alt text for the image."
162
187
},
163
188
"image": {
164
189
"type": "blob",
165
190
"accept": [
166
191
"image/jpeg",
167
192
"image/png",
168
193
"image/webp"
169
194
],
170
195
"maxSize": 10000000
171
196
},
172
197
"aspectRatio": {
173
198
"ref": "#aspectRatio",
174
199
"type": "ref"
175
200
}
176
201
}
177
202
},
203
+
"weather": {
204
+
"type": "object",
205
+
"properties": {
206
+
"uvIndex": {
207
+
"type": "string",
208
+
"maxLength": 64,
209
+
"description": "UV index. String-encoded decimal."
210
+
},
211
+
"dewpoint": {
212
+
"type": "string",
213
+
"maxLength": 64,
214
+
"description": "Dewpoint in degrees Celsius. String-encoded decimal."
215
+
},
216
+
"humidity": {
217
+
"type": "string",
218
+
"maxLength": 64,
219
+
"description": "Relative humidity as a percentage. String-encoded decimal."
220
+
},
221
+
"pressure": {
222
+
"type": "string",
223
+
"maxLength": 64,
224
+
"description": "Atmospheric pressure in hPa/mbar. String-encoded decimal."
225
+
},
226
+
"windGust": {
227
+
"type": "string",
228
+
"maxLength": 64,
229
+
"description": "Wind gust speed in meters per second. String-encoded decimal."
230
+
},
231
+
"condition": {
232
+
"type": "string",
233
+
"maxLength": 128,
234
+
"description": "General weather condition, e.g. 'Clear', 'Cloudy', 'Rain'."
235
+
},
236
+
"windSpeed": {
237
+
"type": "string",
238
+
"maxLength": 64,
239
+
"description": "Wind speed in meters per second. String-encoded decimal."
240
+
},
241
+
"cloudCover": {
242
+
"type": "string",
243
+
"maxLength": 64,
244
+
"description": "Cloud cover as a percentage. String-encoded decimal."
245
+
},
246
+
"visibility": {
247
+
"type": "string",
248
+
"maxLength": 64,
249
+
"description": "Visibility distance in kilometers. String-encoded decimal."
250
+
},
251
+
"temperature": {
252
+
"type": "string",
253
+
"maxLength": 64,
254
+
"description": "Air temperature in degrees Celsius. String-encoded decimal."
255
+
},
256
+
"windBearing": {
257
+
"type": "string",
258
+
"maxLength": 64,
259
+
"description": "Wind direction in degrees (0-360). String-encoded decimal."
260
+
},
261
+
"avgTemperature": {
262
+
"type": "string",
263
+
"maxLength": 64,
264
+
"description": "Average device-measured temperature in degrees Celsius. String-encoded decimal."
265
+
},
266
+
"maxTemperature": {
267
+
"type": "string",
268
+
"maxLength": 64,
269
+
"description": "Maximum device-measured temperature in degrees Celsius. String-encoded decimal."
270
+
},
271
+
"precipitationType": {
272
+
"type": "string",
273
+
"maxLength": 64,
274
+
"description": "Type of precipitation, e.g. 'rain', 'snow', 'sleet'."
275
+
},
276
+
"apparentTemperature": {
277
+
"type": "string",
278
+
"maxLength": 64,
279
+
"description": "Feels-like temperature in degrees Celsius. String-encoded decimal."
280
+
},
281
+
"precipitationIntensity": {
282
+
"type": "string",
283
+
"maxLength": 64,
284
+
"description": "Precipitation intensity in mm/hr. String-encoded decimal."
285
+
},
286
+
"precipitationProbability": {
287
+
"type": "string",
288
+
"maxLength": 64,
289
+
"description": "Precipitation probability as a percentage. String-encoded decimal."
290
+
}
291
+
},
292
+
"description": "Weather conditions observed during the activity."
293
+
},
178
294
"aspectRatio": {
179
295
"type": "object",
180
296
"required": [
181
297
"width",
182
298
"height"
183
299
],
184
300
"properties": {
185
301
"width": {
186
302
"type": "integer",
187
303
"minimum": 1
188
304
},
189
305
"height": {
190
306
"type": "integer",
191
307
"minimum": 1
192
308
}
193
309
},
194
310
"description": "Width and height of the image, used for layout before the image loads."
195
311
}
196
312
},
197
313
"$type": "com.atproto.lexicon.schema",
198
314
"lexicon": 1
199
315
}