From 7b81a2f569d3ad2978aa220cc43857234a290372 Mon Sep 17 00:00:00 2001 From: Sergio Peralta Date: Mon, 22 Jun 2026 12:53:52 -0600 Subject: [PATCH 1/5] Add gps_device_capture to records schema --- reference/rest-api.json | 123 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 122 insertions(+), 1 deletion(-) diff --git a/reference/rest-api.json b/reference/rest-api.json index 7d420ce..98e12d3 100644 --- a/reference/rest-api.json +++ b/reference/rest-api.json @@ -269,6 +269,9 @@ } } }, + "gps_device_capture": { + "$ref": "#/components/schemas/GpsDeviceCapture" + }, "speed": { "type": "number", "nullable": true, @@ -458,6 +461,9 @@ "geometry": { "$ref": "#/components/schemas/Geometry" }, + "gps_device_capture": { + "$ref": "#/components/schemas/GpsDeviceCapture" + }, "speed": { "type": "number", "nullable": true @@ -511,6 +517,113 @@ }, "description": "Location metadata captured at creation or update time." }, + "GpsDeviceCapture": { + "type": "object", + "description": "Flexible GPS device metadata captured with a record.", + "additionalProperties": true, + "properties": { + "device_name": { + "type": "string", + "description": "Name of the GPS device" + }, + "manufacturer": { + "type": "string", + "description": "Manufacturer of the GPS device" + }, + "fix_type": { + "type": "string", + "description": "Type of GPS fix" + }, + "satellite_count": { + "type": "integer", + "description": "Number of satellites used for the fix" + }, + "hdop": { + "type": "number", + "description": "Horizontal dilution of precision" + }, + "vdop": { + "type": "number", + "description": "Vertical dilution of precision" + }, + "pdop": { + "type": "number", + "description": "Position dilution of precision" + }, + "differential_correction": { + "type": "boolean", + "description": "Whether differential correction was used" + }, + "antenna_height": { + "type": "number", + "description": "Antenna height in meters" + }, + "firmware_version": { + "type": "string", + "description": "Device firmware version" + }, + "geometry": { + "$ref": "#/components/schemas/Geometry", + "description": "GPS-captured geometry reference used to compute geometry_matches_capture" + }, + "geometry_matches_capture": { + "type": "boolean", + "readOnly": true, + "description": "Server-computed flag indicating whether the current record geometry matches gps_device_capture.geometry" + } + } + }, + "GpsDeviceCaptureRequest": { + "type": "object", + "description": "Flexible GPS device metadata captured with a record.", + "additionalProperties": true, + "properties": { + "device_name": { + "type": "string", + "description": "Name of the GPS device" + }, + "manufacturer": { + "type": "string", + "description": "Manufacturer of the GPS device" + }, + "fix_type": { + "type": "string", + "description": "Type of GPS fix" + }, + "satellite_count": { + "type": "integer", + "description": "Number of satellites used for the fix" + }, + "hdop": { + "type": "number", + "description": "Horizontal dilution of precision" + }, + "vdop": { + "type": "number", + "description": "Vertical dilution of precision" + }, + "pdop": { + "type": "number", + "description": "Position dilution of precision" + }, + "differential_correction": { + "type": "boolean", + "description": "Whether differential correction was used" + }, + "antenna_height": { + "type": "number", + "description": "Antenna height in meters" + }, + "firmware_version": { + "type": "string", + "description": "Device firmware version" + }, + "geometry": { + "$ref": "#/components/schemas/Geometry", + "description": "GPS-captured geometry reference used to compute geometry_matches_capture" + } + } + }, "AttachmentCopyAllRequest": { "type": "object", "required": [ @@ -3798,6 +3911,10 @@ "$ref": "#/components/schemas/Geometry", "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, + "gps_device_capture": { + "$ref": "#/components/schemas/GpsDeviceCaptureRequest", + "description": "Flexible GPS device metadata captured with the record." + }, "form_values": { "type": "object", "description": "Field values keyed by field key", @@ -3843,6 +3960,10 @@ "$ref": "#/components/schemas/Geometry", "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, + "gps_device_capture": { + "$ref": "#/components/schemas/GpsDeviceCaptureRequest", + "description": "Flexible GPS device metadata captured with the record." + }, "form_values": { "type": "object", "description": "Field values keyed by field key", @@ -13835,4 +13956,4 @@ "proxy-enabled": true }, "x-readme-fauxas": true -} \ No newline at end of file +} From 93c637cef8da04b8d8d1dbbe6b3f08a6668ada2c Mon Sep 17 00:00:00 2001 From: Sergio Peralta Date: Wed, 22 Jul 2026 14:44:09 -0600 Subject: [PATCH 2/5] Refactor GPS device capture OpenAPI schemas Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- reference/rest-api.json | 79 +++++++++++++---------------------------- 1 file changed, 24 insertions(+), 55 deletions(-) diff --git a/reference/rest-api.json b/reference/rest-api.json index 98e12d3..caa7eae 100644 --- a/reference/rest-api.json +++ b/reference/rest-api.json @@ -517,7 +517,7 @@ }, "description": "Location metadata captured at creation or update time." }, - "GpsDeviceCapture": { + "GpsDeviceCaptureBase": { "type": "object", "description": "Flexible GPS device metadata captured with a record.", "additionalProperties": true, @@ -564,65 +564,34 @@ }, "geometry": { "$ref": "#/components/schemas/Geometry", - "description": "GPS-captured geometry reference used to compute geometry_matches_capture" - }, - "geometry_matches_capture": { - "type": "boolean", - "readOnly": true, - "description": "Server-computed flag indicating whether the current record geometry matches gps_device_capture.geometry" + "description": "GPS-captured geometry reference used to derive geometry_matches_capture when available." } } }, - "GpsDeviceCaptureRequest": { - "type": "object", - "description": "Flexible GPS device metadata captured with a record.", - "additionalProperties": true, - "properties": { - "device_name": { - "type": "string", - "description": "Name of the GPS device" - }, - "manufacturer": { - "type": "string", - "description": "Manufacturer of the GPS device" - }, - "fix_type": { - "type": "string", - "description": "Type of GPS fix" - }, - "satellite_count": { - "type": "integer", - "description": "Number of satellites used for the fix" - }, - "hdop": { - "type": "number", - "description": "Horizontal dilution of precision" - }, - "vdop": { - "type": "number", - "description": "Vertical dilution of precision" - }, - "pdop": { - "type": "number", - "description": "Position dilution of precision" - }, - "differential_correction": { - "type": "boolean", - "description": "Whether differential correction was used" - }, - "antenna_height": { - "type": "number", - "description": "Antenna height in meters" - }, - "firmware_version": { - "type": "string", - "description": "Device firmware version" + "GpsDeviceCapture": { + "allOf": [ + { + "$ref": "#/components/schemas/GpsDeviceCaptureBase" }, - "geometry": { - "$ref": "#/components/schemas/Geometry", - "description": "GPS-captured geometry reference used to compute geometry_matches_capture" + { + "type": "object", + "properties": { + "geometry_matches_capture": { + "type": "boolean", + "readOnly": true, + "description": "Response-only hint indicating whether the current record geometry matches gps_device_capture.geometry." + } + } } - } + ] + }, + "GpsDeviceCaptureRequest": { + "allOf": [ + { + "$ref": "#/components/schemas/GpsDeviceCaptureBase" + } + ], + "description": "GPS device metadata accepted during create/update. This request shape excludes geometry_matches_capture." }, "AttachmentCopyAllRequest": { "type": "object", From 2b185d8e2f3b8a81854b1fb3c81afe7120913e0b Mon Sep 17 00:00:00 2001 From: Sergio Peralta Date: Wed, 22 Jul 2026 14:47:43 -0600 Subject: [PATCH 3/5] Document gps_device_capture response fields Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- reference/rest-api.json | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/reference/rest-api.json b/reference/rest-api.json index caa7eae..6f5d8d3 100644 --- a/reference/rest-api.json +++ b/reference/rest-api.json @@ -270,7 +270,8 @@ } }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCapture" + "$ref": "#/components/schemas/GpsDeviceCapture", + "description": "Flexible GPS device metadata captured with the record." }, "speed": { "type": "number", @@ -462,7 +463,8 @@ "$ref": "#/components/schemas/Geometry" }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCapture" + "$ref": "#/components/schemas/GpsDeviceCapture", + "description": "Flexible GPS device metadata captured with the record." }, "speed": { "type": "number", From ad9ab9c9a438bb9741d8657d8a6b81854d2a9258 Mon Sep 17 00:00:00 2001 From: Sergio Peralta Date: Wed, 22 Jul 2026 16:02:09 -0600 Subject: [PATCH 4/5] Clarify GPS capture request schema contract Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- reference/rest-api.json | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/reference/rest-api.json b/reference/rest-api.json index 6f5d8d3..bd52877 100644 --- a/reference/rest-api.json +++ b/reference/rest-api.json @@ -271,6 +271,7 @@ }, "gps_device_capture": { "$ref": "#/components/schemas/GpsDeviceCapture", + "nullable": true, "description": "Flexible GPS device metadata captured with the record." }, "speed": { @@ -464,6 +465,7 @@ }, "gps_device_capture": { "$ref": "#/components/schemas/GpsDeviceCapture", + "nullable": true, "description": "Flexible GPS device metadata captured with the record." }, "speed": { @@ -587,14 +589,6 @@ } ] }, - "GpsDeviceCaptureRequest": { - "allOf": [ - { - "$ref": "#/components/schemas/GpsDeviceCaptureBase" - } - ], - "description": "GPS device metadata accepted during create/update. This request shape excludes geometry_matches_capture." - }, "AttachmentCopyAllRequest": { "type": "object", "required": [ @@ -3883,8 +3877,8 @@ "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCaptureRequest", - "description": "Flexible GPS device metadata captured with the record." + "$ref": "#/components/schemas/GpsDeviceCaptureBase", + "description": "Flexible GPS device metadata captured with the record. Known keys are documented and additional device-specific keys are accepted." }, "form_values": { "type": "object", @@ -3932,8 +3926,8 @@ "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCaptureRequest", - "description": "Flexible GPS device metadata captured with the record." + "$ref": "#/components/schemas/GpsDeviceCaptureBase", + "description": "Flexible GPS device metadata captured with the record. Known keys are documented and additional device-specific keys are accepted." }, "form_values": { "type": "object", From 28ac3b715c18d512ede4ae77e9e59d51d151658c Mon Sep 17 00:00:00 2001 From: Sergio Peralta Date: Thu, 23 Jul 2026 08:30:42 -0600 Subject: [PATCH 5/5] Remove geometry_matches_capture from API schema Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- reference/rest-api.json | 31 ++++++++++++------------------- 1 file changed, 12 insertions(+), 19 deletions(-) diff --git a/reference/rest-api.json b/reference/rest-api.json index bd52877..fc02f97 100644 --- a/reference/rest-api.json +++ b/reference/rest-api.json @@ -270,7 +270,7 @@ } }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCapture", + "$ref": "#/components/schemas/GpsDeviceCaptureBase", "nullable": true, "description": "Flexible GPS device metadata captured with the record." }, @@ -464,7 +464,7 @@ "$ref": "#/components/schemas/Geometry" }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCapture", + "$ref": "#/components/schemas/GpsDeviceCaptureBase", "nullable": true, "description": "Flexible GPS device metadata captured with the record." }, @@ -568,26 +568,17 @@ }, "geometry": { "$ref": "#/components/schemas/Geometry", - "description": "GPS-captured geometry reference used to derive geometry_matches_capture when available." + "description": "GPS-captured geometry reference." } } }, - "GpsDeviceCapture": { + "GpsDeviceCaptureRequest": { "allOf": [ { "$ref": "#/components/schemas/GpsDeviceCaptureBase" - }, - { - "type": "object", - "properties": { - "geometry_matches_capture": { - "type": "boolean", - "readOnly": true, - "description": "Response-only hint indicating whether the current record geometry matches gps_device_capture.geometry." - } - } } - ] + ], + "description": "GPS device metadata accepted during create/update. Known keys are documented and additional device-specific keys are accepted." }, "AttachmentCopyAllRequest": { "type": "object", @@ -3877,8 +3868,9 @@ "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCaptureBase", - "description": "Flexible GPS device metadata captured with the record. Known keys are documented and additional device-specific keys are accepted." + "$ref": "#/components/schemas/GpsDeviceCaptureRequest", + "nullable": true, + "description": "Flexible GPS device metadata captured with the record. Set null to clear metadata." }, "form_values": { "type": "object", @@ -3926,8 +3918,9 @@ "description": "Optional GeoJSON geometry (Point, LineString, Polygon, MultiLineString, or MultiPolygon). If provided, latitude/longitude will be updated to reflect this geometry." }, "gps_device_capture": { - "$ref": "#/components/schemas/GpsDeviceCaptureBase", - "description": "Flexible GPS device metadata captured with the record. Known keys are documented and additional device-specific keys are accepted." + "$ref": "#/components/schemas/GpsDeviceCaptureRequest", + "nullable": true, + "description": "Flexible GPS device metadata captured with the record. Set null to clear metadata." }, "form_values": { "type": "object",