{
  "components": {
    "schemas": {
      "MESSAGE": {
        "description": "Full message definition with message-metadata in `header` and different message type schemas under `payload`",
        "properties": {
          "header": {
            "$ref": "#/components/schemas/header"
          },
          "payload": {
            "$ref": "#/components/schemas/payload"
          }
        },
        "required": [
          "header",
          "payload"
        ],
        "type": "object"
      },
      "acknowledgement": {
        "properties": {
          "approved": {
            "description": "Human-in-the-loop approval.1 - Plan approved; 0 - Plan Rejected",
            "type": "boolean"
          },
          "autonomy_engine_plan_ID": {
            "description": "Mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
            "example": 1,
            "type": "integer"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "acknowledgement"
            ],
            "example": "acknowledgement",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          }
        },
        "required": [
          "message_type",
          "autonomy_engine_plan_ID",
          "platform_ID",
          "approved"
        ],
        "type": "object"
      },
      "alert": {
        "properties": {
          "code": {
            "description": "Alert code",
            "example": 345,
            "type": "integer"
          },
          "details": {
            "description": "Detailed reason for the alert ",
            "example": "Discrepancy between rudder and actuator positions : Rudder Pos=10.31\u00b0, Steering Actuator Pos=28.65\u00b0, Discrepancy=18.33\u00b0",
            "type": "string"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "alert"
            ],
            "example": "alert",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "usvdecibel",
            "type": "string"
          },
          "platform_timestamp": {
            "description": "Timestamp for onboard platform status message",
            "example": "2022-12-21T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "severity": {
            "description": "Severity level of alert",
            "enum": [
              "Emergency",
              "Alarm",
              "Warning",
              "Caution"
            ],
            "example": "Alarm",
            "type": "string"
          },
          "subsystem": {
            "description": "System that generated the alert",
            "example": "Onboard Fault Monitor",
            "type": "string"
          },
          "summary": {
            "description": "High level description of the alert",
            "example": "Steering Damage - Port Side",
            "type": "string"
          }
        },
        "required": [
          "message_type",
          "platform_ID",
          "code",
          "severity"
        ],
        "type": "object"
      },
      "config_file": {
        "properties": {
          "content": {
            "description": "Base64 encoded file content",
            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
            "type": "string"
          },
          "mime_type": {
            "description": "MIME type",
            "example": "text/plain",
            "type": "string"
          },
          "name": {
            "description": "Name of file",
            "example": "yo95.ma",
            "type": "string"
          },
          "static": {
            "description": "list of the fixed values set by the config file",
            "type": "object"
          }
        },
        "required": [
          "name",
          "content"
        ],
        "type": "object"
      },
      "geojson.org.schema.Feature.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "geometry": {
            "oneOf": [
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 2,
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "Point"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON Point",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "items": {
                        "type": "number"
                      },
                      "minItems": 2,
                      "type": "array"
                    },
                    "minItems": 2,
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "LineString"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON LineString",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "items": {
                        "items": {
                          "type": "number"
                        },
                        "minItems": 2,
                        "type": "array"
                      },
                      "minItems": 4,
                      "type": "array"
                    },
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "Polygon"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON Polygon",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "items": {
                        "type": "number"
                      },
                      "minItems": 2,
                      "type": "array"
                    },
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "MultiPoint"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON MultiPoint",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "items": {
                        "items": {
                          "type": "number"
                        },
                        "minItems": 2,
                        "type": "array"
                      },
                      "minItems": 2,
                      "type": "array"
                    },
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "MultiLineString"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON MultiLineString",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "coordinates": {
                    "items": {
                      "items": {
                        "items": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 2,
                          "type": "array"
                        },
                        "minItems": 4,
                        "type": "array"
                      },
                      "type": "array"
                    },
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "MultiPolygon"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "coordinates"
                ],
                "title": "GeoJSON MultiPolygon",
                "type": "object"
              },
              {
                "properties": {
                  "bbox": {
                    "items": {
                      "type": "number"
                    },
                    "minItems": 4,
                    "type": "array"
                  },
                  "geometries": {
                    "items": {
                      "oneOf": [
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 2,
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "Point"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON Point",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "items": {
                                  "type": "number"
                                },
                                "minItems": 2,
                                "type": "array"
                              },
                              "minItems": 2,
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "LineString"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON LineString",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "items": {
                                  "items": {
                                    "type": "number"
                                  },
                                  "minItems": 2,
                                  "type": "array"
                                },
                                "minItems": 4,
                                "type": "array"
                              },
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "Polygon"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON Polygon",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "items": {
                                  "type": "number"
                                },
                                "minItems": 2,
                                "type": "array"
                              },
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "MultiPoint"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON MultiPoint",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "items": {
                                  "items": {
                                    "type": "number"
                                  },
                                  "minItems": 2,
                                  "type": "array"
                                },
                                "minItems": 2,
                                "type": "array"
                              },
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "MultiLineString"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON MultiLineString",
                          "type": "object"
                        },
                        {
                          "properties": {
                            "bbox": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "coordinates": {
                              "items": {
                                "items": {
                                  "items": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 2,
                                    "type": "array"
                                  },
                                  "minItems": 4,
                                  "type": "array"
                                },
                                "type": "array"
                              },
                              "type": "array"
                            },
                            "type": {
                              "enum": [
                                "MultiPolygon"
                              ],
                              "type": "string"
                            }
                          },
                          "required": [
                            "type",
                            "coordinates"
                          ],
                          "title": "GeoJSON MultiPolygon",
                          "type": "object"
                        }
                      ]
                    },
                    "type": "array"
                  },
                  "type": {
                    "enum": [
                      "GeometryCollection"
                    ],
                    "type": "string"
                  }
                },
                "required": [
                  "type",
                  "geometries"
                ],
                "title": "GeoJSON GeometryCollection",
                "type": "object"
              }
            ]
          },
          "id": {
            "oneOf": [
              {
                "type": "number"
              },
              {
                "type": "string"
              }
            ]
          },
          "properties": {
            "oneOf": [
              {
                "type": "object"
              }
            ]
          },
          "type": {
            "enum": [
              "Feature"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "properties",
          "geometry"
        ],
        "title": "GeoJSON Feature",
        "type": "object"
      },
      "geojson.org.schema.FeatureCollection.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "features": {
            "items": {
              "properties": {
                "bbox": {
                  "items": {
                    "type": "number"
                  },
                  "minItems": 4,
                  "type": "array"
                },
                "geometry": {
                  "oneOf": [
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 2,
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "Point"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON Point",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "items": {
                              "type": "number"
                            },
                            "minItems": 2,
                            "type": "array"
                          },
                          "minItems": 2,
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "LineString"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON LineString",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "items": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 2,
                              "type": "array"
                            },
                            "minItems": 4,
                            "type": "array"
                          },
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "Polygon"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON Polygon",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "items": {
                              "type": "number"
                            },
                            "minItems": 2,
                            "type": "array"
                          },
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "MultiPoint"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON MultiPoint",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "items": {
                              "items": {
                                "type": "number"
                              },
                              "minItems": 2,
                              "type": "array"
                            },
                            "minItems": 2,
                            "type": "array"
                          },
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "MultiLineString"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON MultiLineString",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "coordinates": {
                          "items": {
                            "items": {
                              "items": {
                                "items": {
                                  "type": "number"
                                },
                                "minItems": 2,
                                "type": "array"
                              },
                              "minItems": 4,
                              "type": "array"
                            },
                            "type": "array"
                          },
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "MultiPolygon"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "coordinates"
                      ],
                      "title": "GeoJSON MultiPolygon",
                      "type": "object"
                    },
                    {
                      "properties": {
                        "bbox": {
                          "items": {
                            "type": "number"
                          },
                          "minItems": 4,
                          "type": "array"
                        },
                        "geometries": {
                          "items": {
                            "oneOf": [
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 2,
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "Point"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON Point",
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "items": {
                                        "type": "number"
                                      },
                                      "minItems": 2,
                                      "type": "array"
                                    },
                                    "minItems": 2,
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "LineString"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON LineString",
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "items": {
                                        "items": {
                                          "type": "number"
                                        },
                                        "minItems": 2,
                                        "type": "array"
                                      },
                                      "minItems": 4,
                                      "type": "array"
                                    },
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "Polygon"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON Polygon",
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "items": {
                                        "type": "number"
                                      },
                                      "minItems": 2,
                                      "type": "array"
                                    },
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "MultiPoint"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON MultiPoint",
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "items": {
                                        "items": {
                                          "type": "number"
                                        },
                                        "minItems": 2,
                                        "type": "array"
                                      },
                                      "minItems": 2,
                                      "type": "array"
                                    },
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "MultiLineString"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON MultiLineString",
                                "type": "object"
                              },
                              {
                                "properties": {
                                  "bbox": {
                                    "items": {
                                      "type": "number"
                                    },
                                    "minItems": 4,
                                    "type": "array"
                                  },
                                  "coordinates": {
                                    "items": {
                                      "items": {
                                        "items": {
                                          "items": {
                                            "type": "number"
                                          },
                                          "minItems": 2,
                                          "type": "array"
                                        },
                                        "minItems": 4,
                                        "type": "array"
                                      },
                                      "type": "array"
                                    },
                                    "type": "array"
                                  },
                                  "type": {
                                    "enum": [
                                      "MultiPolygon"
                                    ],
                                    "type": "string"
                                  }
                                },
                                "required": [
                                  "type",
                                  "coordinates"
                                ],
                                "title": "GeoJSON MultiPolygon",
                                "type": "object"
                              }
                            ]
                          },
                          "type": "array"
                        },
                        "type": {
                          "enum": [
                            "GeometryCollection"
                          ],
                          "type": "string"
                        }
                      },
                      "required": [
                        "type",
                        "geometries"
                      ],
                      "title": "GeoJSON GeometryCollection",
                      "type": "object"
                    }
                  ]
                },
                "id": {
                  "oneOf": [
                    {
                      "type": "number"
                    },
                    {
                      "type": "string"
                    }
                  ]
                },
                "properties": {
                  "oneOf": [
                    {
                      "type": "object"
                    }
                  ]
                },
                "type": {
                  "enum": [
                    "Feature"
                  ],
                  "type": "string"
                }
              },
              "required": [
                "type",
                "properties",
                "geometry"
              ],
              "title": "GeoJSON Feature",
              "type": "object"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "FeatureCollection"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "features"
        ],
        "title": "GeoJSON FeatureCollection",
        "type": "object"
      },
      "geojson.org.schema.LineString.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "items": {
                "type": "number"
              },
              "minItems": 2,
              "type": "array"
            },
            "minItems": 2,
            "type": "array"
          },
          "type": {
            "enum": [
              "LineString"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON LineString",
        "type": "object"
      },
      "geojson.org.schema.MultiLineString.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "items": {
                "items": {
                  "type": "number"
                },
                "minItems": 2,
                "type": "array"
              },
              "minItems": 2,
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "MultiLineString"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON MultiLineString",
        "type": "object"
      },
      "geojson.org.schema.MultiPoint.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "items": {
                "type": "number"
              },
              "minItems": 2,
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "MultiPoint"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON MultiPoint",
        "type": "object"
      },
      "geojson.org.schema.MultiPolygon.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "items": {
                "items": {
                  "items": {
                    "type": "number"
                  },
                  "minItems": 2,
                  "type": "array"
                },
                "minItems": 4,
                "type": "array"
              },
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "MultiPolygon"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON MultiPolygon",
        "type": "object"
      },
      "geojson.org.schema.Point.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "type": "number"
            },
            "minItems": 2,
            "type": "array"
          },
          "type": {
            "enum": [
              "Point"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON Point",
        "type": "object"
      },
      "geojson.org.schema.Polygon.json": {
        "properties": {
          "bbox": {
            "items": {
              "type": "number"
            },
            "minItems": 4,
            "type": "array"
          },
          "coordinates": {
            "items": {
              "items": {
                "items": {
                  "type": "number"
                },
                "minItems": 2,
                "type": "array"
              },
              "minItems": 4,
              "type": "array"
            },
            "type": "array"
          },
          "type": {
            "enum": [
              "Polygon"
            ],
            "type": "string"
          }
        },
        "required": [
          "type",
          "coordinates"
        ],
        "title": "GeoJSON Polygon",
        "type": "object"
      },
      "header": {
        "oneOf": [
          {
            "properties": {
              "version": {
                "pattern": "^(v{0,1}(0|[1-9][0-9]*)[.](0|[1-9][0-9]*)[.](0|[1-9][0-9]*)(?:-(alpha|beta)[.](0|[1-9][0-9]*))?)$",
                "type": "string"
              }
            },
            "required": [
              "version"
            ],
            "type": "object"
          },
          {
            "properties": {
              "version": {
                "pattern": "^([0-9a-f]+)$",
                "type": "string"
              }
            },
            "required": [
              "version"
            ],
            "type": "object"
          },
          {
            "properties": {
              "version": {
                "enum": [
                  "dev",
                  "master",
                  "latest"
                ],
                "type": "string"
              }
            },
            "required": [
              "version"
            ],
            "type": "object"
          },
          {
            "properties": {
              "version": {
                "example": 2.0,
                "format": "float",
                "type": "number"
              }
            },
            "required": [
              "version"
            ],
            "type": "object"
          }
        ],
        "properties": {
          "delivery_type": {
            "default": "publish",
            "description": "To publish or broadcast this message.",
            "enum": [
              "broadcast",
              "publish"
            ],
            "example": "publish",
            "type": "string"
          },
          "destination": {
            "description": "Publisher topic; What is the destination of this message",
            "example": "ah1",
            "type": "string"
          },
          "encoded": {
            "description": "Indicate that message raw (encoded) or decoded. Options: encoded=true, decoded=false",
            "example": false,
            "type": "boolean"
          },
          "message_ID": {
            "description": "An identifier for the type of message received.",
            "example": "b427003c-0000-11aa-a1eb-b1cdf2342fdd",
            "format": "uuid",
            "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
            "type": "string"
          },
          "source": {
            "description": "The sender; Where is this message from",
            "example": "autonomy_engine",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp of message",
            "example": "2022-11-16T00:00:00Z",
            "format": "date-time",
            "type": "string"
          }
        },
        "required": [
          "message_ID",
          "timestamp",
          "source",
          "destination",
          "delivery_type",
          "encoded"
        ],
        "type": "object"
      },
      "instruction_set": {
        "properties": {
          "categories": {
            "type": "object"
          },
          "files": {
            "items": {
              "properties": {
                "content": {
                  "description": "Base64 encoded file content",
                  "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
                  "type": "string"
                },
                "mime_type": {
                  "description": "MIME type",
                  "example": "text/plain",
                  "type": "string"
                },
                "name": {
                  "description": "Name of file",
                  "example": "yo95.ma",
                  "type": "string"
                },
                "static": {
                  "description": "list of the fixed values set by the config file",
                  "type": "object"
                }
              },
              "required": [
                "name",
                "content"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "files"
        ],
        "type": "object"
      },
      "mission_plan": {
        "oneOf": [
          {
            "properties": {
              "autonomy_engine_plan_ID": {
                "description": "Unique identifier for this plangenerated by the Autonomy Engine",
                "format": "uuid",
                "pattern": "[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}",
                "type": "string"
              }
            }
          },
          {
            "properties": {
              "autonomy_engine_plan_ID": {
                "description": "Unique identifier for this plangenerated by the Autonomy Engine",
                "example": 3,
                "type": "integer"
              }
            }
          }
        ],
        "properties": {
          "emergency": {
            "default": false,
            "description": "To indicate if this is an emergency. true = emergency and false = no emergency",
            "example": false,
            "type": "boolean"
          },
          "goal": {
            "properties": {
              "feature": {
                "$ref": "#/components/schemas/geojson.org.schema.Feature.json"
              },
              "timestamp": {
                "description": "Timestamp of last state change when autonomy model sets this goal",
                "example": "2024-11-21T00:00:00Z",
                "format": "date-time",
                "type": "string"
              }
            },
            "type": "object"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "mission_plan"
            ],
            "example": "mission_plan",
            "type": "string"
          },
          "partial": {
            "description": "To indicate if this mission plan represents a partial (`true`) or the entire (`false`) mission plan. E.g.Partial would be `true` if a full mission plan is broken down into multiple plans.",
            "example": false,
            "type": "boolean"
          },
          "plan": {
            "items": {
              "oneOf": [
                {
                  "properties": {
                    "start": {
                      "$ref": "#/components/schemas/geojson.org.schema.Point.json"
                    },
                    "target": {
                      "$ref": "#/components/schemas/geojson.org.schema.Point.json"
                    }
                  },
                  "required": [
                    "target"
                  ],
                  "type": "object"
                },
                {
                  "properties": {
                    "altitude": {
                      "description": "Altitude of next action",
                      "example": 15.0,
                      "format": "float",
                      "type": "number"
                    },
                    "depth": {
                      "description": "Depth of next action",
                      "example": 15.0,
                      "format": "float",
                      "type": "number"
                    },
                    "start_point_latitude": {
                      "description": "Start point, y-coordinate",
                      "example": 50.37072283932642,
                      "format": "float",
                      "type": "number"
                    },
                    "start_point_longitude": {
                      "description": "Start point, x-coordinate",
                      "example": -4.187143188645706,
                      "format": "float",
                      "type": "number"
                    },
                    "target_waypoint_latitude": {
                      "description": "Target waypoint, y-coordinate",
                      "example": 50.37072283932642,
                      "format": "float",
                      "type": "number"
                    },
                    "target_waypoint_longitude": {
                      "description": "Target waypoint, x-coordinate",
                      "example": -4.187143188645706,
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "target_waypoint_latitude",
                    "target_waypoint_longitude"
                  ],
                  "type": "object"
                }
              ],
              "properties": {
                "action": {
                  "description": "Autonomy Engine's action from `move`, `payload`, `dive`, `send_hits`, `scanline`, `scanpoint`.",
                  "enum": [
                    "move",
                    "payload",
                    "dive",
                    "send_hits",
                    "scanline",
                    "scanpoint",
                    "go_home",
                    "surface_now",
                    "stop_mission",
                    "abort_now"
                  ],
                  "example": "move",
                  "type": "string"
                },
                "activate_payload": {
                  "description": "To activate/deactivate sensor for Autosub Hover-1 --> `MBES` sensor and for EcoSUB --> `Sidescan`",
                  "example": true,
                  "type": "boolean"
                },
                "timeout": {
                  "description": "Timeout set to perform action",
                  "example": 1800.0,
                  "format": "float",
                  "type": "number"
                }
              },
              "type": "object"
            },
            "type": "array"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          }
        },
        "required": [
          "message_type",
          "autonomy_engine_plan_ID",
          "platform_ID",
          "plan"
        ],
        "type": "object"
      },
      "mission_plan_encoded": {
        "properties": {
          "data": {
            "description": "encoded string. E.g. Base64 encoded",
            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
            "type": "string"
          },
          "file_name": {
            "description": "Name of file",
            "example": "ah1-0238126349247372.bin",
            "type": "string"
          },
          "is_binary": {
            "description": "true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
            "example": true,
            "type": "boolean"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "mission_plan_encoded"
            ],
            "example": "mission_plan_encoded",
            "type": "string"
          },
          "mime_type": {
            "description": "MIME type",
            "example": "application/gzip",
            "type": "string"
          }
        },
        "required": [
          "data",
          "is_binary"
        ],
        "type": "object"
      },
      "observation": {
        "properties": {
          "additional_data": {
            "description": "Placeholder field for any additional data",
            "example": {
              "sensor_payload": false
            }
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "observation"
            ],
            "example": "observation",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          },
          "points_of_interest": {
            "description": "Points from features of interest identified by platform if any found.",
            "items": {
              "properties": {
                "latitude": {
                  "description": "Identified y-coordinate of point of interest",
                  "example": 178.2,
                  "format": "float",
                  "type": "number"
                },
                "longitude": {
                  "description": "Identified x-coordinate of point of interest",
                  "example": -10.122,
                  "format": "float",
                  "type": "number"
                },
                "quality_of_point": {
                  "description": "Quality/strength of points from features of interest identified by platform.",
                  "example": 0.98,
                  "format": "float",
                  "type": "number"
                }
              },
              "required": [
                "latitude",
                "longitude"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "region_surveyed": {
            "description": "Region surveyed by given platform. GEOJSON",
            "example": "",
            "nullable": true
          }
        },
        "required": [
          "message_type",
          "platform_ID"
        ],
        "type": "object"
      },
      "observation_encoded": {
        "properties": {
          "data": {
            "description": "encoded string. E.g. Base64 encoded",
            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
            "type": "string"
          },
          "file_name": {
            "description": "Name of file",
            "example": "ah1-0238126349247372.bin",
            "type": "string"
          },
          "is_binary": {
            "description": "true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
            "example": true,
            "type": "boolean"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "observation_encoded"
            ],
            "example": "observation_encoded",
            "type": "string"
          },
          "mime_type": {
            "description": "MIME type",
            "example": "application/gzip",
            "type": "string"
          }
        },
        "required": [
          "data",
          "is_binary"
        ],
        "type": "object"
      },
      "payload": {
        "discriminator": {
          "mapping": {
            "acknowledgement": "#/components/schemas/acknowledgement",
            "alert": "#/components/schemas/alert",
            "mission_plan": "#/components/schemas/mission_plan",
            "mission_plan_encoded": "#/components/schemas/mission_plan_encoded",
            "observation": "#/components/schemas/observation",
            "observation_encoded": "#/components/schemas/observation_encoded",
            "planning_configuration": "#/components/schemas/planning_configuration",
            "platform_instruction_set": "#/components/schemas/platform_instruction_set",
            "platform_status": "#/components/schemas/platform_status",
            "platform_status_encoded": "#/components/schemas/platform_status_encoded",
            "survey": "#/components/schemas/survey",
            "survey_encoded": "#/components/schemas/survey_encoded",
            "waypoints": "#/components/schemas/waypoints"
          },
          "propertyName": "message_type"
        },
        "oneOf": [
          {
            "$ref": "#/components/schemas/alert"
          },
          {
            "$ref": "#/components/schemas/acknowledgement"
          },
          {
            "$ref": "#/components/schemas/mission_plan"
          },
          {
            "$ref": "#/components/schemas/mission_plan_encoded"
          },
          {
            "$ref": "#/components/schemas/observation"
          },
          {
            "$ref": "#/components/schemas/observation_encoded"
          },
          {
            "$ref": "#/components/schemas/planning_configuration"
          },
          {
            "$ref": "#/components/schemas/platform_instruction_set"
          },
          {
            "$ref": "#/components/schemas/platform_status"
          },
          {
            "$ref": "#/components/schemas/platform_status_encoded"
          },
          {
            "$ref": "#/components/schemas/survey"
          },
          {
            "$ref": "#/components/schemas/survey_encoded"
          },
          {
            "$ref": "#/components/schemas/waypoints"
          }
        ]
      },
      "planning_configuration": {
        "properties": {
          "instructions": {
            "items": {
              "properties": {
                "categories": {
                  "type": "object"
                },
                "files": {
                  "items": {
                    "properties": {
                      "content": {
                        "description": "Base64 encoded file content",
                        "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
                        "type": "string"
                      },
                      "mime_type": {
                        "description": "MIME type",
                        "example": "text/plain",
                        "type": "string"
                      },
                      "name": {
                        "description": "Name of file",
                        "example": "yo95.ma",
                        "type": "string"
                      },
                      "static": {
                        "description": "list of the fixed values set by the config file",
                        "type": "object"
                      }
                    },
                    "required": [
                      "name",
                      "content"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                }
              },
              "required": [
                "files"
              ],
              "type": "object"
            },
            "type": "array"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "planning_configuration"
            ],
            "example": "planning_configuration",
            "type": "string"
          },
          "planning_config_ID": {
            "description": "Unique identifier tagged to version of this configuration plan",
            "example": 3,
            "type": "integer"
          },
          "primitives": {
            "description": "Specification primitives - campaign-wide such as operating area and obstacles",
            "items": {
              "oneOf": [
                {
                  "properties": {
                    "feature": {
                      "$ref": "#/components/schemas/geojson.org.schema.Feature.json"
                    },
                    "instruction": {
                      "description": "How the associated feature should be used",
                      "enum": [
                        "navigate_to",
                        "follow"
                      ],
                      "type": "string"
                    },
                    "options": {
                      "properties": {
                        "acceptance_radius_m": {
                          "description": "Acceptance radius (if applicable) to points of geometry in metres",
                          "example": 10000,
                          "format": "float",
                          "type": "number"
                        },
                        "repeat": {
                          "description": "Repeat these set of primitives in order (e.g. 1->2->3->1->2...)",
                          "example": true,
                          "type": "boolean"
                        },
                        "reverse": {
                          "description": "Loop backwards through the set of primitives (e.g 1->2->-3->2->1...)",
                          "example": true,
                          "type": "boolean"
                        }
                      },
                      "type": "object"
                    }
                  },
                  "required": [
                    "feature",
                    "instruction"
                  ]
                },
                {
                  "properties": {
                    "feature": {
                      "$ref": "#/components/schemas/geojson.org.schema.Feature.json"
                    },
                    "instruction": {
                      "description": "How the associated feature should be used",
                      "enum": [
                        "stay_inside",
                        "stay_outside",
                        "repeat",
                        "cover"
                      ],
                      "type": "string"
                    }
                  },
                  "required": [
                    "feature",
                    "instruction"
                  ]
                }
              ]
            },
            "type": "array"
          },
          "squads": {
            "items": {
              "properties": {
                "no_of_platforms": {
                  "description": "Number of platforms",
                  "example": 3,
                  "type": "integer"
                },
                "platforms": {
                  "description": "Squad consists of these platforms",
                  "items": {
                    "properties": {
                      "active": {
                        "description": "If platform is active = True, and inactive = False",
                        "example": true,
                        "type": "boolean"
                      },
                      "additional_data": {
                        "description": "Any addition fields/data to be added here",
                        "example": {
                          "new_sensor_a": "test_sensor",
                          "range": 10.0
                        },
                        "type": "object"
                      },
                      "beacon_ID": {
                        "description": "Unique identifier (number) for the beacon associated to this platform",
                        "example": 2407,
                        "type": "number"
                      },
                      "emergency": {
                        "properties": {
                          "safe_command": {
                            "description": "Command/Action that is native to respective partner's platform/C2",
                            "enum": [
                              "go_home",
                              "abort_now",
                              "stop_now",
                              "surface_now"
                            ],
                            "example": "go_home",
                            "type": "string"
                          },
                          "target_depth": {
                            "description": "Z-coordinate safe place for respective platform . If platform to NOT stay at depth, key in `0.0`",
                            "example": 10.0,
                            "format": "float",
                            "type": "number"
                          },
                          "target_waypoint_latitude": {
                            "description": "Y-coordinate safe place for respective platform",
                            "example": 50.365,
                            "format": "float",
                            "type": "number"
                          },
                          "target_waypoint_longitude": {
                            "description": "X-coordinate safe place for respective platform",
                            "example": -7.432,
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "required": [
                          "target_waypoint_latitude",
                          "target_waypoint_longitude"
                        ],
                        "type": "object"
                      },
                      "endurance_relative_to_water_speed": {
                        "properties": {
                          "avg_battery_rating": {
                            "description": "Battery endurance rating during standard operational speed usage (m/s)",
                            "example": 1.9,
                            "format": "float",
                            "type": "number"
                          },
                          "max_battery_rating": {
                            "description": "Battery endurance rating during maximum speed usage (m/s)",
                            "example": 1.23,
                            "format": "float",
                            "type": "number"
                          },
                          "min_battery_rating": {
                            "description": "Battery endurance rating during maximum speed usage (m/s)",
                            "example": 3.32,
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "max_velocity": {
                        "description": "Maximum velocity set for platform",
                        "example": 0.9,
                        "format": "float",
                        "type": "number"
                      },
                      "min_altitude": {
                        "description": "Minimum altitude set for platform",
                        "example": 15.2,
                        "format": "float",
                        "type": "number"
                      },
                      "min_velocity": {
                        "description": "Minimum velocity set for platform",
                        "example": 0.1,
                        "format": "float",
                        "type": "number"
                      },
                      "model": {
                        "example": "reav",
                        "type": "string"
                      },
                      "operator": {
                        "description": "Operator of platform",
                        "example": "noc",
                        "type": "string"
                      },
                      "platform_ID": {
                        "description": "Unique identifier for this platform",
                        "example": "reav-x-1",
                        "type": "string"
                      },
                      "scan_sensor": {
                        "properties": {
                          "angle": {
                            "description": "Angle of range of swath width (in degrees)",
                            "example": 140.0,
                            "format": "float",
                            "type": "number"
                          },
                          "frequency": {
                            "description": "Frequency of scanning sensor (in kHz)",
                            "example": 700.0,
                            "format": "float",
                            "type": "number"
                          },
                          "sensor_type": {
                            "description": "Unique identifier for this platform",
                            "enum": [
                              "SIDESCAN",
                              "MBES"
                            ],
                            "example": "MBES",
                            "type": "string"
                          },
                          "swath_width": {
                            "description": "Function of `target_altitude` for the platform's swath width (in metres)",
                            "example": 38.0,
                            "format": "float",
                            "type": "number"
                          },
                          "warmup_time": {
                            "description": "Warmup time (seconds) for sensor to start up.",
                            "example": 180.0,
                            "format": "float",
                            "type": "number"
                          }
                        },
                        "type": "object"
                      },
                      "target_altitude": {
                        "description": "Target altitude set for platform. This affects swath width",
                        "example": 15.0,
                        "format": "float",
                        "type": "number"
                      },
                      "turning_radius": {
                        "description": "Turning radius of platform (in metres)",
                        "example": 1.0,
                        "format": "float",
                        "type": "number"
                      }
                    },
                    "required": [
                      "operator",
                      "platform_ID",
                      "active",
                      "model"
                    ],
                    "type": "object"
                  },
                  "type": "array"
                },
                "primitives": {
                  "description": "Squad primitives - includes platform group navigation instructions",
                  "items": {
                    "oneOf": [
                      {
                        "properties": {
                          "feature": {
                            "$ref": "#/components/schemas/geojson.org.schema.Feature.json"
                          },
                          "instruction": {
                            "description": "How the associated feature should be used",
                            "enum": [
                              "navigate_to",
                              "follow"
                            ],
                            "type": "string"
                          },
                          "options": {
                            "properties": {
                              "acceptance_radius_m": {
                                "description": "Acceptance radius (if applicable) to points of geometry in metres",
                                "example": 10000,
                                "format": "float",
                                "type": "number"
                              },
                              "repeat": {
                                "description": "Repeat these set of primitives in order (e.g. 1->2->3->1->2...)",
                                "example": true,
                                "type": "boolean"
                              },
                              "reverse": {
                                "description": "Loop backwards through the set of primitives (e.g 1->2->-3->2->1...)",
                                "example": true,
                                "type": "boolean"
                              }
                            },
                            "type": "object"
                          }
                        },
                        "required": [
                          "feature",
                          "instruction"
                        ]
                      },
                      {
                        "properties": {
                          "feature": {
                            "$ref": "#/components/schemas/geojson.org.schema.Feature.json"
                          },
                          "instruction": {
                            "description": "How the associated feature should be used",
                            "enum": [
                              "stay_inside",
                              "stay_outside",
                              "repeat",
                              "cover"
                            ],
                            "type": "string"
                          }
                        },
                        "required": [
                          "feature",
                          "instruction"
                        ]
                      }
                    ]
                  },
                  "type": "array"
                },
                "squad_ID": {
                  "description": "Identifier of given squad",
                  "example": 23,
                  "type": "integer"
                },
                "squad_mission_type": {
                  "description": "Mission of given squad: `tracking`, `survey`, `inspection`",
                  "enum": [
                    "tracking",
                    "survey",
                    "inspection",
                    "profiling"
                  ],
                  "example": "survey",
                  "type": "string"
                }
              },
              "required": [
                "squad_ID",
                "no_of_platforms",
                "platforms",
                "squad_mission_type"
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "message_type",
          "planning_config_ID",
          "squads",
          "primitives"
        ],
        "type": "object"
      },
      "platform_instruction_set": {
        "properties": {
          "instruction_set": {
            "properties": {
              "categories": {
                "type": "object"
              },
              "files": {
                "items": {
                  "properties": {
                    "content": {
                      "description": "Base64 encoded file content",
                      "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
                      "type": "string"
                    },
                    "mime_type": {
                      "description": "MIME type",
                      "example": "text/plain",
                      "type": "string"
                    },
                    "name": {
                      "description": "Name of file",
                      "example": "yo95.ma",
                      "type": "string"
                    },
                    "static": {
                      "description": "list of the fixed values set by the config file",
                      "type": "object"
                    }
                  },
                  "required": [
                    "name",
                    "content"
                  ],
                  "type": "object"
                },
                "type": "array"
              }
            },
            "required": [
              "files"
            ],
            "type": "object"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "platform_instruction_set"
            ],
            "example": "platform_instruction_set",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          }
        },
        "required": [
          "message_type",
          "platform_ID",
          "instruction_set"
        ],
        "type": "object"
      },
      "platform_status": {
        "oneOf": [
          {
            "properties": {
              "no_position_reason": {
                "description": "Why position data is unavailable",
                "enum": [
                  "missing",
                  "invalid",
                  "old",
                  "poor_fix",
                  "unavailable",
                  "not_applicable"
                ],
                "example": "invalid",
                "type": "string"
              }
            },
            "required": [
              "no_position_reason"
            ],
            "type": "object"
          },
          {
            "properties": {
              "position": {
                "$ref": "#/components/schemas/geojson.org.schema.Point.json"
              },
              "waypoint": {
                "$ref": "#/components/schemas/geojson.org.schema.Point.json"
              }
            },
            "required": [
              "position"
            ],
            "type": "object"
          },
          {
            "properties": {
              "altitude": {
                "description": "Target altitude in metres",
                "example": 20.0,
                "format": "float",
                "type": "number"
              },
              "depth": {
                "default": 0.0,
                "description": "Target depth in metres",
                "example": 50.0,
                "format": "float",
                "type": "number"
              },
              "latitude": {
                "description": "Latitude (Y-coordinate) in decimal degrees.",
                "example": 178.2,
                "format": "float",
                "type": "number"
              },
              "longitude": {
                "description": "Longitude (X-coordinate) in decimal degrees.",
                "example": -10.122,
                "format": "float",
                "type": "number"
              },
              "waypoint_altitude": {
                "description": "Target altitude in metres",
                "example": 20.0,
                "format": "float",
                "type": "number"
              },
              "waypoint_depth": {
                "default": 0.0,
                "description": "Target depth in metres",
                "example": 50.0,
                "format": "float",
                "type": "number"
              },
              "waypoint_latitude": {
                "description": "Latitude (Y-coordinate) in decimal degrees.",
                "example": 178.2,
                "format": "float",
                "type": "number"
              },
              "waypoint_longitude": {
                "description": "Longitude (X-coordinate) in decimal degrees.",
                "example": -10.122,
                "format": "float",
                "type": "number"
              }
            },
            "required": [
              "latitude",
              "longitude"
            ],
            "type": "object"
          }
        ],
        "properties": {
          "autonomy_engine_plan_ID": {
            "description": "Last mission plan ID (according to Autonomy Engine's mission plan number sent) executed by platform",
            "example": 1,
            "type": "integer"
          },
          "battery_output": {
            "description": "Battery output in kW",
            "example": 80.2,
            "format": "float",
            "type": "number"
          },
          "battery_remaining_capacity": {
            "description": "Battery remaining % provided by respective C2",
            "example": 80.2,
            "format": "float",
            "type": "number"
          },
          "endurance": {
            "description": "Estimate of hours of operation remaining based on present output or performance",
            "example": 7.4,
            "format": "float",
            "type": "number"
          },
          "fuel_remaining_capacity": {
            "description": "Percentage remaining capacity",
            "example": 80.2,
            "format": "float",
            "type": "number"
          },
          "fuel_volume": {
            "description": "Litres of liquid fuel",
            "example": 12.5,
            "format": "float",
            "type": "number"
          },
          "heading": {
            "description": "Angular distance relative to north, usually 000\u00b0 at north, clockwise through 359\u00b0, in degrees",
            "example": 124.3,
            "format": "float",
            "type": "number"
          },
          "health_status": {
            "description": "Health status where 0 is OK, 1 is platform has an ERROR",
            "example": false,
            "type": "boolean"
          },
          "localisation_east_error": {
            "description": "Difference in EAST between deadreckoningand USBL update.",
            "example": 0.000129,
            "format": "float",
            "type": "number"
          },
          "localisation_north_error": {
            "description": "Difference in NORTH between deadreckoning and USBL update.",
            "example": 0.000129,
            "format": "float",
            "type": "number"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "platform_status"
            ],
            "example": "platform_status",
            "type": "string"
          },
          "mission_plan_ID": {
            "description": "Mission plan ID according to platform-C2 system",
            "example": 1,
            "type": "integer"
          },
          "mission_track_ID": {
            "description": "Track number - stage in mission (e.g. 4 --> Waypoint 3 to Waypoint 4)",
            "example": 4,
            "type": "integer"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          },
          "platform_state": {
            "description": "Current state executed by platform. E.g. STOP, IDLE, ABORT.",
            "example": "ABORT",
            "type": "string"
          },
          "platform_timestamp": {
            "description": "Timestamp for onboard platform status message",
            "example": "2022-12-21T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "range_to_go": {
            "description": "Estimated distance to reach next waypoint",
            "example": 124.3,
            "format": "float",
            "type": "number"
          },
          "sensor_config": {
            "description": "Scanning sensor on platform available to be controlled by  the Autonomy Engine",
            "properties": {
              "additional_data": {
                "description": "Any addition fields/data to be added here",
                "example": {
                  "payload": [
                    1.2,
                    434
                  ]
                },
                "type": "object"
              },
              "sensor_on": {
                "description": "Sensor switched on (true) or off (false)",
                "example": true,
                "type": "boolean"
              },
              "sensor_serial": {
                "description": "serial number of sensor",
                "example": "mbes-002a",
                "type": "string"
              }
            },
            "type": "object"
          },
          "speed_over_ground": {
            "description": "Speed over ground",
            "example": 124.3,
            "format": "float",
            "type": "number"
          },
          "status_source": {
            "description": "Indicate if this status message is from the platform or USBL",
            "enum": [
              "usbl",
              "onboard_platform",
              "simulated"
            ],
            "example": "usbl",
            "type": "string"
          },
          "thrust_applied": {
            "description": "Thrust applied",
            "example": 124.3,
            "format": "float",
            "type": "number"
          },
          "transmission_mode": {
            "description": "Mode in which status message was transmitted when on the surface (e.g. iridium/wifi) or underwater (e.g. acoustics)",
            "enum": [
              "acoustics",
              "iridium",
              "wifi",
              "starlink"
            ],
            "example": "wifi",
            "type": "string"
          },
          "usbl_fix_seconds_ago": {
            "description": "USBL Fix received x second ago.",
            "example": 10.0,
            "format": "float",
            "type": "number"
          },
          "water_current_velocity": {
            "description": "Water current magnitude and direction",
            "example": "124.3NE",
            "type": "string"
          }
        },
        "required": [
          "message_type",
          "platform_ID",
          "status_source",
          "platform_timestamp"
        ],
        "type": "object"
      },
      "platform_status_encoded": {
        "properties": {
          "data": {
            "description": "encoded string. E.g. Base64 encoded",
            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
            "type": "string"
          },
          "file_name": {
            "description": "Name of file",
            "example": "ah1-0238126349247372.bin",
            "type": "string"
          },
          "is_binary": {
            "description": "true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
            "example": true,
            "type": "boolean"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "platform_status_encoded"
            ],
            "example": "platform_status_encoded",
            "type": "string"
          },
          "mime_type": {
            "description": "MIME type",
            "example": "application/gzip",
            "type": "string"
          }
        },
        "required": [
          "data",
          "is_binary"
        ],
        "type": "object"
      },
      "survey": {
        "properties": {
          "latitude_A": {
            "description": "Latitude of point A(intersection of normal)from waypoint A to survey line",
            "example": 178.2,
            "format": "float",
            "type": "number"
          },
          "latitude_B": {
            "description": "Latitude of point B(intersection of normal)from waypoint B to survey line",
            "example": 178.2,
            "format": "float",
            "type": "number"
          },
          "latitude_C": {
            "description": "Latitude of point C(intersection of normal)from waypoint C to survey line",
            "example": 178.2,
            "format": "float",
            "type": "number"
          },
          "latitude_D": {
            "description": "Latitude of point D(intersection of normal)from waypoint D to survey line",
            "example": 178.2,
            "format": "float",
            "type": "number"
          },
          "latitude_E": {
            "description": "Latitude of point E(intersection of normal)from waypoint E to survey line",
            "example": 178.2,
            "format": "float",
            "type": "number"
          },
          "longitude_A": {
            "description": "Longitude of point A(intersection of normal)from waypoint A to survey line",
            "example": -10.122,
            "format": "float",
            "type": "number"
          },
          "longitude_B": {
            "description": "Longitude of point B(intersection of normal)from waypoint B to survey line",
            "example": -10.122,
            "format": "float",
            "type": "number"
          },
          "longitude_C": {
            "description": "Longitude of point C(intersection of normal)from waypoint C to survey line",
            "example": -10.122,
            "format": "float",
            "type": "number"
          },
          "longitude_D": {
            "description": "Longitude of point D(intersection of normal)from waypoint D to survey line",
            "example": -10.122,
            "format": "float",
            "type": "number"
          },
          "longitude_E": {
            "description": "Longitude of point E(intersection of normal)from waypoint E to survey line",
            "example": -10.122,
            "format": "float",
            "type": "number"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "survey"
            ],
            "example": "survey",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "ecosub-2",
            "type": "string"
          },
          "timestamp": {
            "description": "Timestamp for onboard message",
            "example": "2022-12-21T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "track_ID": {
            "description": "Track number of action(s) currently executed by platform",
            "example": 1,
            "type": "integer"
          }
        },
        "required": [
          "latitude_A",
          "longitude_A",
          "latitude_B",
          "longitude_B",
          "platform_ID"
        ],
        "type": "object"
      },
      "survey_encoded": {
        "properties": {
          "data": {
            "description": "encoded string. E.g. Base64 encoded",
            "example": "SDQke4uwyP/YQQAgAhA2AND/nu8nvQAAAAAAAAAACtejPa5HHUGkcBAAAAIAAAAQAAAAAAAAAA9P2cP166ab+9cg==",
            "type": "string"
          },
          "file_name": {
            "description": "Name of file",
            "example": "ah1-0238126349247372.bin",
            "type": "string"
          },
          "is_binary": {
            "description": "true if the data field contains binary format data encoded as base64. false if the data field contains ascii content such as NMEA.",
            "example": true,
            "type": "boolean"
          },
          "message_type": {
            "description": "Type of message",
            "enum": [
              "survey_encoded"
            ],
            "example": "survey_encoded",
            "type": "string"
          },
          "mime_type": {
            "description": "MIME type",
            "example": "application/gzip",
            "type": "string"
          }
        },
        "required": [
          "data",
          "is_binary"
        ],
        "type": "object"
      },
      "waypoints": {
        "properties": {
          "message_type": {
            "description": "Type of message",
            "enum": [
              "waypoints"
            ],
            "example": "waypoints",
            "type": "string"
          },
          "platform_ID": {
            "description": "Unique identifier for this platform",
            "example": "reav-x-1",
            "type": "string"
          },
          "platform_timestamp": {
            "description": "Timestamp for onboard platform status message",
            "example": "2022-12-21T00:00:00Z",
            "format": "date-time",
            "type": "string"
          },
          "status_source": {
            "description": "Indicate if this status message is from the platform or USBL",
            "enum": [
              "onboard_platform",
              "simulated",
              "autonomy"
            ],
            "example": "usbl",
            "type": "string"
          },
          "waypoints": {
            "items": {
              "oneOf": [
                {
                  "$ref": "#/components/schemas/geojson.org.schema.Point.json"
                },
                {
                  "properties": {
                    "altitude": {
                      "description": "Target altitude in metres",
                      "example": 20.0,
                      "format": "float",
                      "type": "number"
                    },
                    "depth": {
                      "default": 0.0,
                      "description": "Target depth in metres",
                      "example": 50.0,
                      "format": "float",
                      "type": "number"
                    },
                    "latitude": {
                      "description": "Latitude (Y-coordinate) in decimal degrees.",
                      "example": 178.2,
                      "format": "float",
                      "type": "number"
                    },
                    "longitude": {
                      "description": "Longitude (X-coordinate) in decimal degrees.",
                      "example": -10.122,
                      "format": "float",
                      "type": "number"
                    }
                  },
                  "required": [
                    "latitude",
                    "longitude"
                  ],
                  "type": "object"
                }
              ],
              "type": "object"
            },
            "type": "array"
          }
        },
        "required": [
          "message_type",
          "platform_ID",
          "status_source",
          "platform_timestamp",
          "waypoints"
        ],
        "type": "object"
      }
    }
  },
  "info": {
    "description": "SoAR message protocol in schemas",
    "title": "SoAR Backbone Message Formats",
    "version": "1.0"
  },
  "openapi": "3.0.2",
  "paths": {}
}