{
   "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°, Steering Actuator Pos=28.65°, Discrepancy=18.33°",
             "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"
       },
       "autonomy": {
         "properties": {
           "message_type": {
             "description": "Type of message",
             "enum": [
               "autonomy"
             ],
             "example": "autonomy",
             "type": "string"
           },
           "planning_config_ID": {
             "description": "Unique identifier of autonomy engine's planning config ID configuration plan",
             "example": 3,
             "type": "integer"
           },
           "state": {
             "description": "Autonomy engine instruction to start or stop model",
             "enum": [
               "start",
               "stop"
             ],
             "example": "stop",
             "type": "string"
           },
           "version": {
             "description": "Version of autonomy engine for given planning config ID",
             "example": "v1.0.0",
             "type": "string"
           }
         },
         "required": [
           "message_type",
           "planning_config_ID"
         ],
         "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,
                 "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,
                       "format": "float",
                       "type": "number"
                     },
                     "depth": {
                       "description": "Depth of next action",
                       "example": 15,
                       "format": "float",
                       "type": "number"
                     },
                     "start_point_latitude": {
                       "description": "Start point, y-coordinate",
                       "example": 50.3707228393264,
                       "format": "float",
                       "type": "number"
                     },
                     "start_point_longitude": {
                       "description": "Start point, x-coordinate",
                       "example": -4.18714318864571,
                       "format": "float",
                       "type": "number"
                     },
                     "target_waypoint_latitude": {
                       "description": "Target waypoint, y-coordinate",
                       "example": 50.3707228393264,
                       "format": "float",
                       "type": "number"
                     },
                     "target_waypoint_longitude": {
                       "description": "Target waypoint, x-coordinate",
                       "example": -4.18714318864571,
                       "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 --\u003E `MBES` sensor and for EcoSUB --\u003E `Sidescan`",
                   "example": true,
                   "type": "boolean"
                 },
                 "timeout": {
                   "description": "Timeout set to perform action",
                   "example": 1800,
                   "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-\u003E2-\u003E3-\u003E1-\u003E2...)",
                           "example": true,
                           "type": "boolean"
                         },
                         "reverse": {
                           "description": "Loop backwards through the set of primitives (e.g 1-\u003E2-\u003E-3-\u003E2-\u003E1...)",
                           "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",
                         "cover",
                         "informational"
                       ],
                       "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
                         },
                         "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,
                             "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,
                             "format": "float",
                             "type": "number"
                           },
                           "frequency": {
                             "description": "Frequency of scanning sensor (in kHz)",
                             "example": 700,
                             "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,
                             "format": "float",
                             "type": "number"
                           },
                           "warmup_time": {
                             "description": "Warmup time (seconds) for sensor to start up.",
                             "example": 180,
                             "format": "float",
                             "type": "number"
                           }
                         },
                         "type": "object"
                       },
                       "target_altitude": {
                         "description": "Target altitude set for platform. This affects swath width",
                         "example": 15,
                         "format": "float",
                         "type": "number"
                       },
                       "turning_radius": {
                         "description": "Turning radius of platform (in metres)",
                         "example": 1,
                         "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-\u003E2-\u003E3-\u003E1-\u003E2...)",
                                 "example": true,
                                 "type": "boolean"
                               },
                               "reverse": {
                                 "description": "Loop backwards through the set of primitives (e.g 1-\u003E2-\u003E-3-\u003E2-\u003E1...)",
                                 "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",
                               "cover",
                               "informational"
                             ],
                             "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,
                 "format": "float",
                 "type": "number"
               },
               "depth": {
                 "default": 0,
                 "description": "Target depth in metres",
                 "example": 50,
                 "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,
                 "format": "float",
                 "type": "number"
               },
               "waypoint_depth": {
                 "default": 0,
                 "description": "Target depth in metres",
                 "example": 50,
                 "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": {
           "additional_data": {
             "description": "Any addition fields/data to be added here",
             "example": {
               "m_coulomb_amphr_total": 95.45837
             },
             "type": "object"
           },
           "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° at north, clockwise through 359°, 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 --\u003E 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,
             "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,
                       "format": "float",
                       "type": "number"
                     },
                     "depth": {
                       "default": 0,
                       "description": "Target depth in metres",
                       "example": 50,
                       "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": {
 
   }
 }