{
    "definitions": {
        "Eigen::Quaternion<double, 0>": {
            "additionalProperties": false,
            "properties": {
                "w": {
                    "type": "number"
                },
                "x": {
                    "type": "number"
                },
                "y": {
                    "type": "number"
                },
                "z": {
                    "type": "number"
                }
            },
            "required": ["w", "x", "y", "z"],
            "type": "object"
        },
        "sdgps::interfaces::SamplePos": {
            "additionalProperties": false,
            "properties": {
                "fractional": {
                    "type": "number"
                },
                "integer": {
                    "type": "integer"
                }
            },
            "required": ["fractional", "integer"],
            "type": "object"
        },
        "sdgps::interfaces::common::BarometerPacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                },
                "pressure": {
                    "type": "number"
                },
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["index", "pressure", "stream"],
            "type": "object"
        },
        "sdgps::interfaces::common::EventPacket": {
            "additionalProperties": false,
            "properties": {
                "events": {
                    "items": {
                        "type": "number"
                    },
                    "type": "array",
                    "unevaluatedItems": false
                },
                "index": {
                    "type": "integer"
                },
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["events", "index", "stream"],
            "type": "object"
        },
        "sdgps::interfaces::common::GNSSSamplePacket": {
            "additionalProperties": false,
            "properties": {
                "sample_data": {
                    "items": {
                        "minimum": 0,
                        "type": "integer"
                    },
                    "type": "array",
                    "unevaluatedItems": false
                },
                "sample_index": {
                    "type": "integer"
                },
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["sample_data", "sample_index", "stream"],
            "type": "object"
        },
        "sdgps::interfaces::common::IMUPacket": {
            "additionalProperties": false,
            "properties": {
                "angular_velocity": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "index": {
                    "type": "integer"
                },
                "proper_acceleration": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                }
            },
            "required": ["angular_velocity", "index", "proper_acceleration"],
            "type": "object"
        },
        "sdgps::interfaces::common::MagnetometerPacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                },
                "magnetic_field": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["index", "magnetic_field", "stream"],
            "type": "object"
        },
        "sdgps::interfaces::common::OrientationPacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                },
                "orientation_ecef": {
                    "$ref": "#/definitions/Eigen::Quaternion<double, 0>"
                }
            },
            "required": ["index"],
            "type": "object"
        },
        "sdgps::interfaces::common::TickPacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                }
            },
            "required": ["index"],
            "type": "object"
        },
        "sdgps::interfaces::common::TimePacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                },
                "measured_time": {},
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["index", "stream"],
            "type": "object"
        },
        "sdgps::interfaces::common::VCXOPacket": {
            "additionalProperties": false,
            "properties": {
                "index": {
                    "type": "integer"
                },
                "points": {
                    "items": {
                        "maxItems": 2,
                        "minItems": 2,
                        "prefixItems": [{
                            "type": "number"
                        }, {
                            "type": "number"
                        }],
                        "type": "array",
                        "unevaluatedItems": false
                    },
                    "type": "array",
                    "unevaluatedItems": false
                }
            },
            "required": ["index", "points"],
            "type": "object"
        },
        "sdgps::interfaces::cooked2::GNSSUntaggedObservationPacket": {
            "additionalProperties": false,
            "properties": {
                "C_over_N_0": {
                    "type": "number"
                },
                "announce_center_precise_samples": {
                    "$ref": "#/definitions/sdgps::interfaces::SamplePos"
                },
                "cached": {
                    "type": "boolean"
                },
                "center_precise_samples": {
                    "$ref": "#/definitions/sdgps::interfaces::SamplePos"
                },
                "center_stddev": {
                    "type": "number"
                },
                "doppler": {
                    "type": "number"
                },
                "doppler_stddev": {
                    "type": "number"
                },
                "good": {
                    "type": "boolean"
                },
                "phase": {
                    "type": "number"
                },
                "phase_stddev": {
                    "type": "number"
                },
                "signal": {
                    "type": "integer"
                },
                "stream": {
                    "minimum": 0,
                    "type": "integer"
                },
                "substream": {
                    "minimum": 0,
                    "type": "integer"
                }
            },
            "required": ["C_over_N_0", "announce_center_precise_samples", "cached", "center_precise_samples", "center_stddev", "doppler", "doppler_stddev", "good", "phase", "phase_stddev", "signal", "stream", "substream"],
            "type": "object"
        }
    },
    "oneOf": [{
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::GNSSSamplePacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::GNSSSamplePacket"
            }
        },
        "required": ["sdgps::interfaces::common::GNSSSamplePacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::IMUPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::IMUPacket"
            }
        },
        "required": ["sdgps::interfaces::common::IMUPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::BarometerPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::BarometerPacket"
            }
        },
        "required": ["sdgps::interfaces::common::BarometerPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::MagnetometerPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::MagnetometerPacket"
            }
        },
        "required": ["sdgps::interfaces::common::MagnetometerPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::TickPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::TickPacket"
            }
        },
        "required": ["sdgps::interfaces::common::TickPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::TimePacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::TimePacket"
            }
        },
        "required": ["sdgps::interfaces::common::TimePacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::EventPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::EventPacket"
            }
        },
        "required": ["sdgps::interfaces::common::EventPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::VCXOPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::VCXOPacket"
            }
        },
        "required": ["sdgps::interfaces::common::VCXOPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::common::OrientationPacket": {
                "$ref": "#/definitions/sdgps::interfaces::common::OrientationPacket"
            }
        },
        "required": ["sdgps::interfaces::common::OrientationPacket"],
        "type": "object"
    }, {
        "additionalProperties": false,
        "properties": {
            "sdgps::interfaces::cooked2::GNSSUntaggedObservationPacket": {
                "$ref": "#/definitions/sdgps::interfaces::cooked2::GNSSUntaggedObservationPacket"
            }
        },
        "required": ["sdgps::interfaces::cooked2::GNSSUntaggedObservationPacket"],
        "type": "object"
    }]
}