{
    "additionalProperties": false,
    "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::common::BaroStream": {
            "additionalProperties": false,
            "properties": {
                "position": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {},
                "variance": {
                    "type": "number"
                }
            },
            "required": ["position", "sample_latency", "sample_period", "variance"],
            "type": "object"
        },
        "sdgps::interfaces::common::EventStream": {
            "additionalProperties": false,
            "properties": {
                "name": {
                    "type": "string"
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["name", "sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::GNSSStreamTemplate<sdgps::interfaces::cooked2::SubstreamExtra>": {
            "additionalProperties": false,
            "properties": {
                "i_bits": {
                    "type": "integer"
                },
                "q_bits": {
                    "type": "integer"
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {},
                "samples_per_packet": {
                    "type": "integer"
                },
                "spectrum_info": {
                    "$ref": "#/definitions/sdgps::interfaces::common::SpectrumInfo"
                },
                "substreams": {
                    "items": {
                        "$ref": "#/definitions/sdgps::interfaces::common::GNSSStreamTemplate<sdgps::interfaces::cooked2::SubstreamExtra>::Substream"
                    },
                    "type": "array",
                    "unevaluatedItems": false
                }
            },
            "required": ["i_bits", "q_bits", "sample_latency", "sample_period", "samples_per_packet"],
            "type": "object"
        },
        "sdgps::interfaces::common::GNSSStreamTemplate<sdgps::interfaces::cooked2::SubstreamExtra>::Substream": {
            "additionalProperties": false,
            "properties": {
                "antenna_id": {
                    "type": "string"
                },
                "axis": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "forward": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "frequency": {},
                "observation_latency": {
                    "type": "number"
                },
                "position": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "system": {
                    "type": "string"
                }
            },
            "required": ["antenna_id", "frequency", "observation_latency", "system"],
            "type": "object"
        },
        "sdgps::interfaces::common::IMU": {
            "additionalProperties": false,
            "properties": {
                "covariance": {
                    "items": {
                        "maxItems": 6,
                        "minItems": 6,
                        "type": "array",
                        "unevaluatedItems": false
                    },
                    "maxItems": 6,
                    "minItems": 6,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["covariance", "sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::MagStream": {
            "additionalProperties": false,
            "properties": {
                "covariance": {
                    "items": {
                        "maxItems": 3,
                        "minItems": 3,
                        "type": "array",
                        "unevaluatedItems": false
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "orientation": {
                    "$ref": "#/definitions/Eigen::Quaternion<double, 0>"
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["covariance", "orientation", "sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::OrientationStream": {
            "additionalProperties": false,
            "properties": {
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::SpectrumInfo": {
            "additionalProperties": false,
            "properties": {
                "antenna_axis": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "antenna_forward": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "antenna_id": {
                    "type": "string"
                },
                "antenna_position": {
                    "items": {
                        "type": "number"
                    },
                    "maxItems": 3,
                    "minItems": 3,
                    "type": "array",
                    "unevaluatedItems": false
                },
                "band_end": {
                    "type": "number"
                },
                "band_start": {
                    "type": "number"
                },
                "lo_frequency": {}
            },
            "required": ["antenna_id", "band_end", "band_start", "lo_frequency"],
            "type": "object"
        },
        "sdgps::interfaces::common::TickStream": {
            "additionalProperties": false,
            "properties": {
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::TimeStream": {
            "additionalProperties": false,
            "properties": {
                "ambiguity_period": {},
                "name": {
                    "type": "string"
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["name", "sample_latency", "sample_period"],
            "type": "object"
        },
        "sdgps::interfaces::common::VCXOStream": {
            "additionalProperties": false,
            "properties": {
                "lookup_control": {
                    "items": {
                        "type": "number"
                    },
                    "type": "array",
                    "unevaluatedItems": false
                },
                "lookup_offset": {
                    "items": {
                        "type": "number"
                    },
                    "type": "array",
                    "unevaluatedItems": false
                },
                "sample_latency": {
                    "type": "number"
                },
                "sample_period": {}
            },
            "required": ["lookup_control", "lookup_offset", "sample_latency", "sample_period"],
            "type": "object"
        }
    },
    "properties": {
        "baro_streams": {
            "items": {
                "$ref": "#/definitions/sdgps::interfaces::common::BaroStream"
            },
            "type": "array",
            "unevaluatedItems": false
        },
        "event_streams": {
            "items": {
                "$ref": "#/definitions/sdgps::interfaces::common::EventStream"
            },
            "type": "array",
            "unevaluatedItems": false
        },
        "gnss_streams": {
            "items": {
                "$ref": "#/definitions/sdgps::interfaces::common::GNSSStreamTemplate<sdgps::interfaces::cooked2::SubstreamExtra>"
            },
            "type": "array",
            "unevaluatedItems": false
        },
        "imu": {
            "$ref": "#/definitions/sdgps::interfaces::common::IMU"
        },
        "mag_streams": {
            "items": {
                "$ref": "#/definitions/sdgps::interfaces::common::MagStream"
            },
            "type": "array",
            "unevaluatedItems": false
        },
        "max_stream_jitter": {
            "type": "number"
        },
        "orientation_stream": {
            "$ref": "#/definitions/sdgps::interfaces::common::OrientationStream"
        },
        "tick_stream": {
            "$ref": "#/definitions/sdgps::interfaces::common::TickStream"
        },
        "time_streams": {
            "items": {
                "$ref": "#/definitions/sdgps::interfaces::common::TimeStream"
            },
            "type": "array",
            "unevaluatedItems": false
        },
        "vcxo_stream": {
            "$ref": "#/definitions/sdgps::interfaces::common::VCXOStream"
        }
    },
    "required": ["max_stream_jitter"],
    "type": "object"
}