diff --git a/__init__.py b/__init__.py
index 61ab5158cdaa95bc8b036e76bf4e7c600d71dce1..7a18f10aaa42580436659f33444d176090c3af2e 100644
--- a/__init__.py
+++ b/__init__.py
@@ -2,6 +2,7 @@
 from flask_restx import Api
 
 from flask import Flask
+
 # import os
 
 __all__ = [
@@ -11,4 +12,3 @@ __all__ = [
 app = Flask(__name__)
 api = Api(app)
 # api = Marshmallow(app)
-
diff --git a/docs/generate_swagger.py b/docs/generate_swagger.py
index ba5f7e3c06b280aaa56ccc6637e9fb7fae853b2e..cd442c078f41d12eed935c230ac7c70638d1fa18 100644
--- a/docs/generate_swagger.py
+++ b/docs/generate_swagger.py
@@ -18,7 +18,8 @@ swagger_template = dict(
         "title": LazyString(lambda: "SoAR Backbone Message Formats"),
         "version": LazyString(lambda: "0.1"),
         "description": LazyString(
-            lambda: "Backbone Message Format component for the Squad of Autonomous Robots (SoAR) message definitions."
+            lambda: "Backbone Message Format component for the Squad of"
+            + " Autonomous Robots (SoAR) message definitions."
         ),
     },
     host=LazyString(lambda: request.host),
@@ -28,11 +29,21 @@ swagger_template = dict(
 full_message_schema = api.model(
     "FullMessageSchema",
     {
+        "message_ID": fields.String(
+            required=True,
+            description="UUID assigned to this message",
+            example="b427003c-7bc8-11ed-a1eb-0242ac120002",
+        ),
         "timestamp": fields.DateTime(
             required=True,
             description="Timestamp of message",
             example="2022-11-16T00:00:00Z",
         ),
+        "version": fields.Float(
+            required=True,
+            description="Version of comms bacbone messaging format protocol",
+            example=2.0,
+        ),
         "source": fields.String(
             required=True,
             description="Where is this message from",
@@ -61,7 +72,30 @@ full_message_schema = api.model(
         ),
     },
 )
-
+sensor_schema = api.model(
+    "SensorSchema",
+    {
+        "sensor_ID": fields.Integer(
+            required=True,
+            description="unique identifier for platform",
+            example=2,
+        ),
+        "serial": fields.String(
+            required=False,
+            description="serial number of sensor",
+            example="mbes-001",
+        ),
+        "sensor_status": fields.Boolean(
+            required=False,
+            description="Sensor switched on (True) or off (False)",
+            example=True,
+        ),
+        "additional_data": fields.Raw(
+            required=False,
+            description="Any addition fields/data to be added here",
+        ),
+    },
+)
 constraints_schema = api.model(
     "ConstraintsSchema",
     {
@@ -89,27 +123,23 @@ platform_schema = api.model(
         "platform_ID": fields.Integer(
             required=True,
             description="unique identifier for platform",
-            example="ah-1",
+            example=1,
         ),
-        "serial": fields.Integer(
+        "serial": fields.String(
             required=True,
             description="platform serial number",
-            example="ah-1",
+            example="reav-60",
         ),
-        "model": fields.Integer(
+        "model": fields.String(
             required=True,
             description="platform serial number",
-            example="ah-1",
+            example="reav",
         ),
         "constraints": fields.Nested(constraints_schema),
-        "active": fields.Boolean(
-            required=False,
-            description="When a platform is in deployment (executing a mission plan) this should be True",
-            example=True,
-        ),
     },
 )
 
+
 action_schema = api.model(
     "AutonomyEngineAction",
     {
@@ -121,7 +151,8 @@ action_schema = api.model(
         ),
         "flight_style": fields.String(
             required=False,
-            description="Platform-specific modes/flight styles to perform next action",
+            description="Platform-specific modes/flight styles to perform"
+            + " next action",
             example="orbit",
         ),
         "latitude_waypoint": fields.Float(
@@ -152,17 +183,8 @@ action_schema = api.model(
         ),
         "send_environmental_data": fields.Boolean(
             required=False,
-            description="To trigger the platform to send list of observations if any found",
-            example=False,
-        ),
-        "scanline": fields.Boolean(
-            required=False,
-            description="To trigger the platform to scan-line",
-            example=False,
-        ),
-        "scanpoint": fields.Boolean(
-            required=False,
-            description="To trigger the platform to send list of observations if any found",
+            description="DO WE NEED THIS? To trigger the platform to send"
+            + " list of observations if any found",
             example=False,
         ),
     },
@@ -189,8 +211,8 @@ mission_plan_schema = api.model(
         "plan": fields.List(
             fields.Nested(action_schema),
             required=True,
-            description="Sequence of actions/instructions generated by the " +
-            " Autonomy Engine that should be compiled by the respective C2.",
+            description="Sequence of actions/instructions generated by the "
+            + " Autonomy Engine that should be compiled by the respective C2.",
         ),
     },
 )
@@ -212,17 +234,20 @@ observation_schema = api.model(
         # properties of each observation?
         "points_of_interest": fields.Float(
             required=False,
-            description="Points from features of interest identified by platform if any found. DEFINE FORMAT.",
+            description="Points from features of interest identified by"
+            + " platform if any found. DEFINE FORMAT.",
             example="",
         ),
         "region_surveyed": fields.Float(
             required=False,
-            description="Region surveyed by given platform. DEFINE FORMAT. GEOJSON?",
+            description="Region surveyed by given platform. DEFINE FORMAT."
+            + " GEOJSON?",
             example="",
         ),
         "quality_of_points": fields.Float(
             required=False,
-            description="Quality/strength of points from features of interest identified by platform. DEFINE FORMAT.",
+            description="Quality/strength of points from features of interest"
+            + " identified by platform. DEFINE FORMAT.",
             example=0.98,
         ),
         "additional_data": fields.Raw(
@@ -239,7 +264,8 @@ region_schema = api.model(
     {
         "region": fields.Raw(
             required=True,
-            description="Using GEOJSON, exact region of interest in rectangle format polygon",
+            description="Using GEOJSON, exact region of interest in rectangle"
+            + " format polygon",
             example={
                 "type": "FeatureCollection",
                 "features": [
@@ -284,7 +310,8 @@ squad_metadata_schema = api.model(
         ),
         "squad_mission_type": fields.String(
             required=True,
-            description="Mission of given squad: `tracking`, `survey`, `inspection`",
+            description="Mission of given squad: `tracking`, `survey`,"
+            + " `inspection`",
             example="survey",
         ),
         "squad_state": fields.Boolean(
@@ -334,7 +361,8 @@ gps_schema = api.model(
     {
         "gps_source": fields.Float(  # TODO: TBD with partners
             required=False,
-            description="Source of gps position. E.g. USBL (external), platform itself (internal)",
+            description="Source of gps position. E.g. USBL (external), "
+            + "platform itself (internal)",
             example="internal",
         ),
         "latitude_type": fields.String(
@@ -371,26 +399,6 @@ gps_schema = api.model(
     },
 )
 
-sensor_schema = api.model(
-    "Sensor",
-    {
-        "sensor_name": fields.String(
-            required=False,
-            description="Name of sensor (e.g. MBES for AH1 and SideScan for Ecosub",
-            example="MBES",
-        ),
-        "sensor_status": fields.Boolean(
-            required=False,
-            description="Sensor switched on (True) or off (False)",
-            example=True,
-        ),
-        "additional_data": fields.Raw(
-            required=False,
-            description="Add any additional sensor-related data here.",
-            example={"sensor_loadtime_seconds": 30.0},
-        ),
-    },
-)
 platform_status_message_schema = api.model(
     "platformStatusMessage",
     {
@@ -399,7 +407,17 @@ platform_status_message_schema = api.model(
             required=True,
             description="Message header",
         ),
-        "platform": fields.Nested(platform_schema),
+        "platform_ID": fields.Integer(
+            required=True,
+            description="unique identifier for platform",
+            example=1,
+        ),
+        "active": fields.Boolean(
+            required=False,
+            description="When a platform is in deployment (executing a mission"
+            + " plan) this should be True",
+            example=True,
+        ),
         "platform_state": fields.String(
             # TODO: Define dictionary with potential STATES of each platform
             required=False,
@@ -409,7 +427,8 @@ platform_status_message_schema = api.model(
         ),
         "autonomy_plan_ID": fields.Integer(
             required=False,
-            description="Last mission plan ID (according to Autonomy Engine's mission plan number) executed by platform",
+            description="Last mission plan ID (according to Autonomy Engine's "
+            + "mission plan number) executed by platform",
             example=1,
         ),
         "mission_track_ID": fields.Integer(
@@ -452,9 +471,8 @@ platform_status_message_schema = api.model(
             example="Warning",
         ),
         "gps_data": fields.List(
-            fields.Nested(
-                gps_schema
-            ),  # TODO: TBD Do we want a list of gps readings to allow > 1 reading i.e. platform + usbl
+            fields.Nested(gps_schema),  # TODO: TBD Do we want a list of gps
+            #  readings to allow > 1 reading i.e. platform + usbl
             required=True,
             description="Metadata pf each platform",
         ),
@@ -470,7 +488,8 @@ platform_status_message_schema = api.model(
         ),
         "battery_remaining_capacity": fields.Float(
             required=True,
-            description="Battery remaining capacity % provided by respective platform/C2.",
+            description="Battery remaining capacity % provided by respective"
+            + " platform/C2.",
             example=80.0,
         ),
         "sensor_config": fields.Nested(
@@ -495,14 +514,14 @@ acknowledgement_schema = api.model(
         ),
         "status": fields.String(
             required=True,
-            description="Highest level of acknowledgement. I.e. `c2_received`: Received by C2,"
-            + " `c2_sent`: Sent from C2->Platform, `executed`: Executed by platform",
+            description="Highest level of acknowledgement. I.e. `c2_received`:"
+            + " Received by C2,`c2_sent`: Sent from C2"
+            + " ->Platform, `executed`: Executed by platform",
         ),
     },
 )
 
 
-
 swagger_config = {
     "headers": [],
     "specs": [
@@ -530,7 +549,11 @@ swagger_config = {
 
 swagger = Swagger(app, template=swagger_template, config=swagger_config)
 
-ns1 = api.namespace("message", description="Message Wrapper (Full Message Schema) Format")
+ns1 = api.namespace(
+    "message", description="Message Wrapper (Full Message Schema) Format"
+)
+
+
 @ns1.route("/wrapper")
 class MessageWrapper(Resource):
     @ns1.response(200, "Success", full_message_schema)
@@ -538,7 +561,12 @@ class MessageWrapper(Resource):
         pass
 
 
-ns2 = api.namespace("platform_status", description="platform Status Message Format")
+ns2 = api.namespace(
+    "platform_status",
+    description="platform Status Message Format",
+)
+
+
 @ns2.route("")
 class platformStatus(Resource):
     @ns2.response(200, "Success", platform_status_message_schema)
@@ -547,9 +575,12 @@ class platformStatus(Resource):
 
 
 ns3 = api.namespace(
-    "planning_configuration", description="Planning Configuration Format. Do we want region of interest to be per squad, per platform or in the main schema?"
+    "planning_configuration",
+    description="Planning Configuration Format. Do we want region of "
+    + "interest to be per squad, per platform or in the main schema?",
 )
 
+
 @ns3.route("")
 class PlanningConfiguration(Resource):
     @ns3.response(200, "Success", planning_configuration_schema)
@@ -558,8 +589,13 @@ class PlanningConfiguration(Resource):
 
 
 # @api.route('/mission-plan/<str:platform_type')
-# @api.doc(params={"platform_type": "The type of platform of the mission plan to target."})
-ns4 = api.namespace("mission_plan", description="Mission Plan Format Per platform")
+# @api.doc(params={"platform_type": "The type of platform of the
+# mission plan to target."})
+ns4 = api.namespace(
+    "mission_plan",
+    description="Mission Plan Format Per platform",
+)
+
 
 @ns4.route("")
 class MissionPlan(Resource):
@@ -567,18 +603,29 @@ class MissionPlan(Resource):
     def get(self):
         pass
 
-ns5 = api.namespace("observation", description="Observation Format --> Per platform or generic?")
+
+ns5 = api.namespace(
+    "observation",
+    description="Observation Format --> Per platform or generic?",
+)
+
+
 @ns5.route("")
 class Observation(Resource):
     @ns5.response(200, "Success", observation_schema)
     def get(self):
         pass
+
+
 ns6 = api.namespace("acknowledgement", description="Acknowledgment Format")
+
+
 @ns6.route("")
 class Acknowledgment(Resource):
     @ns6.response(200, "Success", acknowledgement_schema)
     def get(self):
         pass
 
+
 if __name__ == "__main__":
     app.run()
diff --git a/examples/all/acknowledgment.json b/examples/all/acknowledgement.json
similarity index 52%
rename from examples/all/acknowledgment.json
rename to examples/all/acknowledgement.json
index 3c7b91f199418f617aafff6705bb646f38d3eae4..405220257e7d09ccd7ff684a3c91cc8aa170a6e1 100644
--- a/examples/all/acknowledgment.json
+++ b/examples/all/acknowledgement.json
@@ -1,11 +1,13 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
+    "version": 1,
     "source": "hydrosurv_adapter",
     "destination": "autonomy_engine",
     "encoded": false,
-    "type": "platform_status",
+    "type": "acknowledgement",
     "payload": {
-        "message_ID": 202,
+        "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac999999",
         "status": "executed"
     }
 }
\ No newline at end of file
diff --git a/examples/all/compiled_mission_plan.json b/examples/all/compiled_mission_plan.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/examples/all/compiled_observation.json b/examples/all/compiled_observation.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/examples/all/compiled_platform_status.json b/examples/all/compiled_platform_status.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/examples/all/emergency.json b/examples/all/emergency.json
new file mode 100644
index 0000000000000000000000000000000000000000..e69de29bb2d1d6434b8b29ae775ad8c2e48c5391
diff --git a/examples/all/mission_plan.json b/examples/all/mission_plan.json
index e97e553affd9564d434a271a236a110a9c80781c..add738302a61e6a67ba84467a18fbf8d357fbb92 100644
--- a/examples/all/mission_plan.json
+++ b/examples/all/mission_plan.json
@@ -1,7 +1,9 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
-    "destination": "autonomy_engine",
+    "version": 2,
+    "source": "autonomy_engine",
+    "destination": "ah-1",
     "encoded": false,
     "type": "platform_status",
     "payload": {
@@ -16,9 +18,7 @@
                 "altitude": 0,
                 "depth": 0,
                 "activate_payload": false,
-                "send_environmental_data": false,
-                "scanline": false,
-                "scanpoint": false
+                "send_environmental_data": false
             }
         ]
     }
diff --git a/examples/all/observation.json b/examples/all/observation.json
index bbbde9986a268df63b6eb44bc564927a863ac0ec..a4a857461b03f20b1e05700697645a7f52f06bee 100644
--- a/examples/all/observation.json
+++ b/examples/all/observation.json
@@ -1,13 +1,15 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
+    "version": 2,
+    "source": "ecosub_c2",
     "destination": "autonomy_engine",
     "encoded": false,
     "type": "platform_status",
     "payload": {
         "platform_serial":"ecosub-3",
-        "points_of_interest": "",
-        "region_surveyed": "",
+        "points_of_interest": [],
+        "region_surveyed": [],
         "quality_of_points": 0.98,
         "additional_data": {
             "sensor_x": false
diff --git a/examples/all/planning_configuration.json b/examples/all/planning_configuration.json
index df6042179988319c5ea8bce403705892a09ec2b7..a6576cee877e622e8c3281a25daea9956966dadc 100644
--- a/examples/all/planning_configuration.json
+++ b/examples/all/planning_configuration.json
@@ -1,7 +1,9 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
-    "source": "gui",
-    "destination": "autonomy_engine",
+    "version": 2,
+    "source": "autonomy_engine",
+    "destination": "ah-1",
     "encoded": false,
     "type": "platform_status",
     "payload": {
diff --git a/examples/all/platform_status.json b/examples/all/platform_status.json
index 78a156befca10f0dbbd9b9256e9d016e5f1bc459..b459ecbb06a8d9d8f8f7800333014e897278daf0 100644
--- a/examples/all/platform_status.json
+++ b/examples/all/platform_status.json
@@ -1,29 +1,22 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
+    "version": 1,
     "source": "hydrosurv_adapter",
     "destination": "autonomy_engine",
     "encoded": false,
     "type": "platform_status",
     "payload": {
-        "platform": {
-            "platform_ID": 2,
-            "serial": "ah-1",
-            "model": "ah-1",
-            "constraints": {
-                "min_altitude": 15.2,
-                "min_velocity": 0.1,
-                "max_velocity": 0.9
-            },
-            "active": true
-        },
-        "platform_state": "IDLE",
+        "platform_ID": 1,
+        "active": true,
+        "platform_state": "ORBIT",
         "autonomy_plan_ID": 1,
         "mission_track_ID": 4,
         "mission_action_ID": 1,
-        "range_to_go": 124.3,
-        "speed_over_ground": 124.3,
-        "water_current_velocity": 124.3,
-        "thrust_applied": 124.3,
+        "range_to_go": 0.3,
+        "speed_over_ground": 0.3,
+        "water_current_velocity": 0.3,
+        "thrust_applied": 0.3,
         "health_status": "Warning",
         "gps_data": [
             {
@@ -36,16 +29,13 @@
                 "altitude": 0.0
             }
         ],
-        "localisation_error": 0.008,
-        "usbl_fix_seconds_ago": 20.3,
+        "localisation_error": null,
+        "usbl_fix_seconds_ago": null,
         "battery_remaining_capacity": 80,
         "sensor_config": {
-        "sensor_name": "MBES",
-        "sensor_status": false,
-        "additional_data": {
-            "sensor_loadtime_seconds": 30
-        }
-            }
+            "sensor_name": null,
+            "sensor_status": false,
+            "additional_data": null
         }
     }
-}
\ No newline at end of file
+  }
\ No newline at end of file
diff --git a/examples/autonomy_engine/mission_plan.json b/examples/autonomy_engine/mission_plan.json
deleted file mode 100644
index e97e553affd9564d434a271a236a110a9c80781c..0000000000000000000000000000000000000000
--- a/examples/autonomy_engine/mission_plan.json
+++ /dev/null
@@ -1,25 +0,0 @@
-{
-    "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
-    "destination": "autonomy_engine",
-    "encoded": false,
-    "type": "platform_status",
-    "payload": {
-        "plan_ID": 1,
-        "platform_serial": "reav-60",
-        "plan": [
-            {
-                "action": "move",
-                "flight_style": "orbit",
-                "latitude_waypoint": -4.187143188645706,
-                "longitude_waypoint": 50.37072283932642,
-                "altitude": 0,
-                "depth": 0,
-                "activate_payload": false,
-                "send_environmental_data": false,
-                "scanline": false,
-                "scanpoint": false
-            }
-        ]
-    }
-}
\ No newline at end of file
diff --git a/examples/autonomy_engine/planning_configuration.json b/examples/autonomy_engine/planning_configuration.json
deleted file mode 100644
index df6042179988319c5ea8bce403705892a09ec2b7..0000000000000000000000000000000000000000
--- a/examples/autonomy_engine/planning_configuration.json
+++ /dev/null
@@ -1,101 +0,0 @@
-{
-    "timestamp": "2022-11-16T00:00:00Z",
-    "source": "gui",
-    "destination": "autonomy_engine",
-    "encoded": false,
-    "type": "platform_status",
-    "payload": {
-        "ID": 3,
-        "squads": {
-            "squad_ID": 23,
-            "no_of_platforms": 3,
-            "platforms": [
-            {
-                "platform_ID": 1,
-                "serial": "ah-1",
-                "model": "ah-1",
-                "constraints": {
-                "min_altitude": 15.2,
-                "min_velocity": 0.1,
-                "max_velocity": 0.9
-                },
-                "active": true
-            }
-            ],
-            "squad_mission_type": "survey",
-            "squad_state": false,
-            "region_of_interest": [
-            {
-                "region": {
-                "type": "FeatureCollection",
-                "features": [
-                    {
-                    "type": "Feature",
-                    "properties": {},
-                    "geometry": {
-                        "coordinates": [
-                        [
-                            [
-                            -4.187143188645706,
-                            50.37072283932642
-                            ],
-                            [
-                            -4.202697005964865,
-                            50.368816892405874
-                            ],
-                            [
-                            -4.203156724702808,
-                            50.365640144076906
-                            ],
-                            [
-                            -4.19449868846155,
-                            50.362267670845654
-                            ]
-                        ]
-                        ],
-                        "type": "Polygon"
-                    }
-                    }
-                ]
-                }
-            }
-            ],
-            "exclusion_zones": [
-            {
-                "region": {
-                "type": "FeatureCollection",
-                "features": [
-                    {
-                    "type": "Feature",
-                    "properties": {},
-                    "geometry": {
-                        "coordinates": [
-                        [
-                            [
-                            -4.187143188645706,
-                            50.37072283932642
-                            ],
-                            [
-                            -4.202697005964865,
-                            50.368816892405874
-                            ],
-                            [
-                            -4.203156724702808,
-                            50.365640144076906
-                            ],
-                            [
-                            -4.19449868846155,
-                            50.362267670845654
-                            ]
-                        ]
-                        ],
-                        "type": "Polygon"
-                    }
-                    }
-                ]
-                }
-            }
-            ]
-        }
-    }
-}
\ No newline at end of file
diff --git a/examples/autonomy_engine/platform_status.json b/examples/autonomy_engine/platform_status.json
deleted file mode 100644
index 78a156befca10f0dbbd9b9256e9d016e5f1bc459..0000000000000000000000000000000000000000
--- a/examples/autonomy_engine/platform_status.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
-    "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
-    "destination": "autonomy_engine",
-    "encoded": false,
-    "type": "platform_status",
-    "payload": {
-        "platform": {
-            "platform_ID": 2,
-            "serial": "ah-1",
-            "model": "ah-1",
-            "constraints": {
-                "min_altitude": 15.2,
-                "min_velocity": 0.1,
-                "max_velocity": 0.9
-            },
-            "active": true
-        },
-        "platform_state": "IDLE",
-        "autonomy_plan_ID": 1,
-        "mission_track_ID": 4,
-        "mission_action_ID": 1,
-        "range_to_go": 124.3,
-        "speed_over_ground": 124.3,
-        "water_current_velocity": 124.3,
-        "thrust_applied": 124.3,
-        "health_status": "Warning",
-        "gps_data": [
-            {
-                "gps_source": "internal",
-                "latitude_type": "",
-                "longitude_type": "",
-                "latitude": -7.432,
-                "longitude": 50.365,
-                "depth": 0.0,
-                "altitude": 0.0
-            }
-        ],
-        "localisation_error": 0.008,
-        "usbl_fix_seconds_ago": 20.3,
-        "battery_remaining_capacity": 80,
-        "sensor_config": {
-        "sensor_name": "MBES",
-        "sensor_status": false,
-        "additional_data": {
-            "sensor_loadtime_seconds": 30
-        }
-            }
-        }
-    }
-}
\ No newline at end of file
diff --git a/examples/ecosub_c2/mission_plan.json b/examples/ecosub_c2/mission_plan.json
new file mode 100644
index 0000000000000000000000000000000000000000..07591cffe02303be3dc2f7a6c256f9a37a4a6275
--- /dev/null
+++ b/examples/ecosub_c2/mission_plan.json
@@ -0,0 +1,25 @@
+{
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
+    "timestamp": "2022-11-16T00:00:00Z",
+    "version": 2,
+    "source": "autonomy_engine",
+    "destination": "ecosub_c2",
+    "encoded": false,
+    "type": "mission_plan",
+    "payload": {
+        "plan_ID": 3,
+        "platform_serial": "ecosub-4",
+        "plan": [
+            {
+                "action": "move",
+                "flight_style": "dive",
+                "latitude_waypoint": -4.187143188645706,
+                "longitude_waypoint": 50.37072283932642,
+                "altitude": 20,
+                "depth": null,
+                "activate_payload": true,
+                "send_environmental_data": false
+            }
+        ]
+    }
+}
\ No newline at end of file
diff --git a/examples/autonomy_engine/observation.json b/examples/ecosub_c2/observation.json
similarity index 63%
rename from examples/autonomy_engine/observation.json
rename to examples/ecosub_c2/observation.json
index bbbde9986a268df63b6eb44bc564927a863ac0ec..a4a857461b03f20b1e05700697645a7f52f06bee 100644
--- a/examples/autonomy_engine/observation.json
+++ b/examples/ecosub_c2/observation.json
@@ -1,13 +1,15 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
+    "version": 2,
+    "source": "ecosub_c2",
     "destination": "autonomy_engine",
     "encoded": false,
     "type": "platform_status",
     "payload": {
         "platform_serial":"ecosub-3",
-        "points_of_interest": "",
-        "region_surveyed": "",
+        "points_of_interest": [],
+        "region_surveyed": [],
         "quality_of_points": 0.98,
         "additional_data": {
             "sensor_x": false
diff --git a/examples/ecosub_c2/platform_status.json b/examples/ecosub_c2/platform_status.json
new file mode 100644
index 0000000000000000000000000000000000000000..460bc82ca5c11494bd0d8913029be74f5886673e
--- /dev/null
+++ b/examples/ecosub_c2/platform_status.json
@@ -0,0 +1,44 @@
+{
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
+    "timestamp": "2022-11-16T00:00:00Z",
+    "version": 1,
+    "source": "hermes_ecosub",
+    "destination": "autonomy_engine",
+    "encoded": false,
+    "type": "platform_status",
+    "payload": {
+        "platform_ID": 2,
+        "active": true,
+        "platform_state": "IDLE",
+        "autonomy_plan_ID": 1,
+        "mission_track_ID": 4,
+        "mission_action_ID": 1,
+        "range_to_go": 12.3,
+        "speed_over_ground": 10.3,
+        "water_current_velocity": 10.3,
+        "thrust_applied": 0.3,
+        "health_status": "Warning",
+        "gps_data": [
+            {
+                "gps_source": "internal",
+                "latitude_type": "",
+                "longitude_type": "",
+                "latitude": -7.432,
+                "longitude": 50.365,
+                "depth": 5.0,
+                "altitude": 20.0
+            }
+        ],
+        "localisation_error": null,
+        "usbl_fix_seconds_ago": null,
+        "battery_remaining_capacity": 80,
+        "sensor_config": {
+            "sensor_ID": 22,
+            "serial": "sidescan-2x",
+            "sensor_status": true,
+            "additional_data": {
+                "whiskers_on": true
+            }
+        }
+    }
+  }
\ No newline at end of file
diff --git a/examples/hydrosurv_adapter/acknowledgment.json b/examples/hydrosurv_adapter/acknowledgement.json
similarity index 52%
rename from examples/hydrosurv_adapter/acknowledgment.json
rename to examples/hydrosurv_adapter/acknowledgement.json
index 3c7b91f199418f617aafff6705bb646f38d3eae4..405220257e7d09ccd7ff684a3c91cc8aa170a6e1 100644
--- a/examples/hydrosurv_adapter/acknowledgment.json
+++ b/examples/hydrosurv_adapter/acknowledgement.json
@@ -1,11 +1,13 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
+    "version": 1,
     "source": "hydrosurv_adapter",
     "destination": "autonomy_engine",
     "encoded": false,
-    "type": "platform_status",
+    "type": "acknowledgement",
     "payload": {
-        "message_ID": 202,
+        "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac999999",
         "status": "executed"
     }
 }
\ No newline at end of file
diff --git a/examples/hydrosurv_adapter/mission_plan.json b/examples/hydrosurv_adapter/mission_plan.json
index e97e553affd9564d434a271a236a110a9c80781c..add738302a61e6a67ba84467a18fbf8d357fbb92 100644
--- a/examples/hydrosurv_adapter/mission_plan.json
+++ b/examples/hydrosurv_adapter/mission_plan.json
@@ -1,7 +1,9 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
-    "source": "hydrosurv_adapter",
-    "destination": "autonomy_engine",
+    "version": 2,
+    "source": "autonomy_engine",
+    "destination": "ah-1",
     "encoded": false,
     "type": "platform_status",
     "payload": {
@@ -16,9 +18,7 @@
                 "altitude": 0,
                 "depth": 0,
                 "activate_payload": false,
-                "send_environmental_data": false,
-                "scanline": false,
-                "scanpoint": false
+                "send_environmental_data": false
             }
         ]
     }
diff --git a/examples/hydrosurv_adapter/platform_status.json b/examples/hydrosurv_adapter/platform_status.json
index ab1a23a2c2e9d95518fdf171c3a3cd7c04f368b5..b459ecbb06a8d9d8f8f7800333014e897278daf0 100644
--- a/examples/hydrosurv_adapter/platform_status.json
+++ b/examples/hydrosurv_adapter/platform_status.json
@@ -1,29 +1,22 @@
 {
+    "message_ID": "b427003c-7bc8-11ed-a1eb-0242ac120002",
     "timestamp": "2022-11-16T00:00:00Z",
+    "version": 1,
     "source": "hydrosurv_adapter",
     "destination": "autonomy_engine",
     "encoded": false,
     "type": "platform_status",
     "payload": {
-        "platform": {
-            "platform_ID": 23,
-            "serial": "ah-1",
-            "model": "ah-1",
-            "constraints": {
-                "min_altitude": 15.2,
-                "min_velocity": 0.1,
-                "max_velocity": 0.9
-            },
-            "active": true
-        },
-        "platform_state": "IDLE",
+        "platform_ID": 1,
+        "active": true,
+        "platform_state": "ORBIT",
         "autonomy_plan_ID": 1,
         "mission_track_ID": 4,
         "mission_action_ID": 1,
-        "range_to_go": 124.3,
-        "speed_over_ground": 124.3,
-        "water_current_velocity": 124.3,
-        "thrust_applied": 124.3,
+        "range_to_go": 0.3,
+        "speed_over_ground": 0.3,
+        "water_current_velocity": 0.3,
+        "thrust_applied": 0.3,
         "health_status": "Warning",
         "gps_data": [
             {
@@ -36,16 +29,13 @@
                 "altitude": 0.0
             }
         ],
-        "localisation_error": 0.008,
-        "usbl_fix_seconds_ago": 20.3,
+        "localisation_error": null,
+        "usbl_fix_seconds_ago": null,
         "battery_remaining_capacity": 80,
         "sensor_config": {
-        "sensor_name": "MBES",
-        "sensor_status": false,
-        "additional_data": {
-            "sensor_loadtime_seconds": 30
-        }
-            }
+            "sensor_name": null,
+            "sensor_status": false,
+            "additional_data": null
         }
     }
-}
\ No newline at end of file
+  }
\ No newline at end of file
diff --git a/formats/__init__.py b/formats/__init__.py
index bf46b074383f850daa1022e71c04e070f3d7e157..fda3a30c78b313dbc287faf0d8d51c8d7eff8fd6 100644
--- a/formats/__init__.py
+++ b/formats/__init__.py
@@ -21,11 +21,21 @@ message_types = [
 full_message_schema = api.model(
     "FullMessageSchema",
     {
+        "message_ID": fields.String(
+            required=True,
+            description="UUID assigned to this message",
+            example="b427003c-7bc8-11ed-a1eb-0242ac120002",
+        ),
         "timestamp": fields.DateTime(
             required=True,
             description="Timestamp of message",
             example="2022-11-16T00:00:00Z",
         ),
+        "version": fields.Float(
+            required=True,
+            description="Version of comms bacbone messaging format protocol",
+            example=2.0,
+        ),
         "source": fields.String(
             required=True,
             description="Where is this message from",
@@ -82,23 +92,18 @@ platform_schema = api.model(
         "platform_ID": fields.Integer(
             required=True,
             description="unique identifier for platform",
-            example="ah-1",
+            example=1,
         ),
-        "serial": fields.Integer(
+        "serial": fields.String(
             required=True,
             description="platform serial number",
-            example="ah-1",
+            example="reav-60",
         ),
-        "model": fields.Integer(
+        "model": fields.String(
             required=True,
             description="platform serial number",
-            example="ah-1",
+            example="reav",
         ),
         "constraints": fields.Nested(constraints_schema),
-        "active": fields.Boolean(
-            required=False,
-            description="When a platform is in deployment (executing a mission plan) this should be True",
-            example=True,
-        ),
     },
 )
diff --git a/formats/acknowledgement.py b/formats/acknowledgement.py
index b7f887e12058f122d1fe156ac5380db3c1a632c5..af0cff02ccc0e240df4742f101e8d196a099345a 100644
--- a/formats/acknowledgement.py
+++ b/formats/acknowledgement.py
@@ -22,8 +22,9 @@ acknowledgement_schema = api.model(
         ),
         "status": fields.String(
             required=True,
-            description="Highest level of acknowledgement. I.e. `c2_received`: Received by C2,"
-            + " `c2_sent`: Sent from C2->Platform, `executed`: Executed by platform",
+            description="Highest level of acknowledgement. I.e. `c2_received`:"
+            + " Received by C2, `c2_sent`: Sent from C2->Platform, `executed`:"
+            + " Executed by platform",
         ),
     },
 )
diff --git a/formats/mission_plan.py b/formats/mission_plan.py
index acd10e7fb4ee10fe47875f2475a3caf18ddce7d7..c6af38490fad78e0e5b9088e6a4ee36557edad62 100644
--- a/formats/mission_plan.py
+++ b/formats/mission_plan.py
@@ -18,7 +18,8 @@ action_schema = api.model(
         ),
         "flight_style": fields.String(
             required=False,
-            description="Platform-specific modes/flight styles to perform next action",
+            description="Platform-specific modes/flight styles to perform"
+            + " next action",
             example="orbit",
         ),
         "latitude_waypoint": fields.Float(
@@ -49,17 +50,8 @@ action_schema = api.model(
         ),
         "send_environmental_data": fields.Boolean(
             required=False,
-            description="To trigger the platform to send list of observations if any found",
-            example=False,
-        ),
-        "scanline": fields.Boolean(
-            required=False,
-            description="To trigger the platform to scan-line",
-            example=False,
-        ),
-        "scanpoint": fields.Boolean(
-            required=False,
-            description="To trigger the platform to send list of observations if any found",
+            description="To trigger the platform to send list of observations"
+            + " if any found",
             example=False,
         ),
     },
diff --git a/formats/observation.py b/formats/observation.py
index 88306e4e3942ffe400c80364300581b46a2b200a..6889b154e6691abdf42db58909e04712468df228 100644
--- a/formats/observation.py
+++ b/formats/observation.py
@@ -1,7 +1,7 @@
 """
     schema: platform-specific decoded status message (DRAFT)
 """
-from . import full_message_schema, platform_schema, api
+from . import full_message_schema, api
 from flask_restx import fields
 
 
@@ -22,17 +22,20 @@ observation_schema = api.model(
         # properties of each observation?
         "points_of_interest": fields.Float(
             required=False,
-            description="Points from features of interest identified by platform if any found. DEFINE FORMAT.",
+            description="Points from features of interest identified by"
+            + " platform if any found. DEFINE FORMAT.",
             example="",
         ),
         "region_surveyed": fields.Float(
             required=False,
-            description="Region surveyed by given platform. DEFINE FORMAT. GEOJSON?",
+            description="Region surveyed by given platform. DEFINE FORMAT."
+            + " GEOJSON?",
             example="",
         ),
         "quality_of_points": fields.Float(
             required=False,
-            description="Quality/strength of points from features of interest identified by platform. DEFINE FORMAT.",
+            description="Quality/strength of points from features of interest"
+            + " identified by platform. DEFINE FORMAT.",
             example=0.98,
         ),
         "additional_data": fields.Raw(
diff --git a/formats/planning_configuration.py b/formats/planning_configuration.py
index ff336dc986395c90cf72b4c59fc32406877fc3b5..b46cc32e559351f9512b24f8826bd1e9a355643c 100644
--- a/formats/planning_configuration.py
+++ b/formats/planning_configuration.py
@@ -11,7 +11,8 @@ region_schema = api.model(
     {
         "region": fields.Raw(
             required=True,
-            description="Using GEOJSON, exact region of interest in rectangle format polygon",
+            description="Using GEOJSON, exact region of interest in rectangle"
+            + " format polygon",
             example={
                 "type": "FeatureCollection",
                 "features": [
@@ -56,7 +57,8 @@ squad_metadata_schema = api.model(
         ),
         "squad_mission_type": fields.String(
             required=True,
-            description="Mission of given squad: `tracking`, `survey`, `inspection`",
+            description="Mission of given squad: `tracking`, `survey`"
+            + ", `inspection`",
             example="survey",
         ),
         "squad_state": fields.Boolean(
diff --git a/formats/platform_status.py b/formats/platform_status.py
index e11af4f48b62ac44db1bfe878f47734bc5b9d479..761b0fc4fc0833501e248e2d2e493cf180fce989 100644
--- a/formats/platform_status.py
+++ b/formats/platform_status.py
@@ -1,7 +1,7 @@
 """
     schema: platform-specific decoded status message (DRAFT)
 """
-from . import full_message_schema, platform_schema, api
+from . import full_message_schema, api
 from flask_restx import fields
 
 gps_schema = api.model(
@@ -9,7 +9,10 @@ gps_schema = api.model(
     {
         "gps_source": fields.Float(  # TODO: TBD with partners
             required=False,
-            description="Source of gps position. E.g. USBL (external), platform itself (internal)",
+            description=(
+                "Source of gps position. E.g. USBL (external),"
+                + "platform itself (internal)"
+            ),
             example="internal",
         ),
         "latitude_type": fields.String(
@@ -47,12 +50,17 @@ gps_schema = api.model(
 )
 
 sensor_schema = api.model(
-    "Sensor",
+    "SensorSchema",
     {
-        "sensor_name": fields.String(
+        "sensor_ID": fields.Integer(
+            required=True,
+            description="unique identifier for platform",
+            example=2,
+        ),
+        "serial": fields.String(
             required=False,
-            description="Name of sensor (e.g. MBES for AH1 and SideScan for Ecosub",
-            example="MBES",
+            description="serial number of sensor",
+            example="mbes-001",
         ),
         "sensor_status": fields.Boolean(
             required=False,
@@ -61,11 +69,12 @@ sensor_schema = api.model(
         ),
         "additional_data": fields.Raw(
             required=False,
-            description="Add any additional sensor-related data here.",
-            example={"sensor_loadtime_seconds": 30.0},
+            description="Any addition fields/data to be added here",
         ),
     },
 )
+
+
 platform_status_message_schema = api.model(
     "platformStatusMessage",
     {
@@ -74,7 +83,17 @@ platform_status_message_schema = api.model(
             required=True,
             description="Message header",
         ),
-        "platform": fields.Nested(platform_schema),
+        "platform_ID": fields.Integer(
+            required=True,
+            description="unique identifier for platform",
+            example=1,
+        ),
+        "active": fields.Boolean(
+            required=False,
+            description="When a platform is in deployment (executing a"
+            + " mission plan) this should be True",
+            example=True,
+        ),
         "platform_state": fields.String(
             # TODO: Define dictionary with potential STATES of each platform
             required=False,
@@ -84,7 +103,8 @@ platform_status_message_schema = api.model(
         ),
         "autonomy_plan_ID": fields.Integer(
             required=False,
-            description="Last mission plan ID (according to Autonomy Engine's mission plan number) executed by platform",
+            description="Last mission plan ID (according to Autonomy Engine's"
+            + " mission plan number) executed by platform",
             example=1,
         ),
         "mission_track_ID": fields.Integer(
@@ -127,9 +147,8 @@ platform_status_message_schema = api.model(
             example="Warning",
         ),
         "gps_data": fields.List(
-            fields.Nested(
-                gps_schema
-            ),  # TODO: TBD Do we want a list of gps readings to allow > 1 reading i.e. platform + usbl
+            fields.Nested(gps_schema),  # TODO: TBD Do we want a list of
+            # gps readings to allow > 1 reading i.e. platform + usbl
             required=True,
             description="Metadata pf each platform",
         ),
@@ -145,7 +164,8 @@ platform_status_message_schema = api.model(
         ),
         "battery_remaining_capacity": fields.Float(
             required=True,
-            description="Battery remaining capacity % provided by respective platform/C2.",
+            description="Battery remaining capacity % provided by respective"
+            + " platform/C2.",
             example=80.0,
         ),
         "sensor_config": fields.Nested(
diff --git a/project/SOAR_README.md b/project/SOAR_README.md
index a8c623ff7e89da94adfe9d74eb43c88989338692..6fb08154dd08e78bf0b901defbe20933b3226fe0 100644
--- a/project/SOAR_README.md
+++ b/project/SOAR_README.md
@@ -3,29 +3,120 @@ Squad of Adaptive Robots Project
 
 -----------------------------------
 ## Message Data Flow Summary
-| Partner      | Message Type           | Source                      | Destination                 | Via Comms Backbone? | Contains Serialized Vehicle-Specific File? |
-| ------------ | ---------------------- | --------------------------- | --------------------------- | ------------------- | ------------------------------------------ |
-| RHU          | platform status        | C2’s (Hydrosurv/Ecosub/Ah1) | Autonomy Engine             | Yes                 | No                                         |
-| RHU          | mission plan           | Autonomy Engine             | C2’s (Hydrosurv/Ecosub/Ah1) | Yes                 | No                                         |
-| RHU          | planning configuration | GUI                         | Autonomy Engine             | Yes                 | No                                         |
-| RHU          | observation            | Ecosub C2                   | Autonomy Engine             | Yes                 | No                                         |
-| Hydro-Surv   | platform status        | Reav-60                     | Hydrosurv C2                | No                  | Yes                                        |
-| Hydro-Surv   | platform status        | Hydrosurv C2                | Autonomy Engine             | Yes                 | No                                         |
-| Hydro-Surv   | mission plan           | Autonomy Engine             | Hydrosurv C2                | Yes                 | No                                         |
-| Hydro-Surv   | mission plan           | Hydrosurv C2                | Reav-60                     | No                  | Yes                                        |
-| Hydro-Surv   | acknowledgement        | Hydrosurv C2                | Comms Backbone (Audit)      | Yes                 | No                                         |
-| Planet Ocean | platform status        | Ecosub                      | Hydrosurv Adapter           | No                  | Yes                                        |
-| Planet Ocean | platform status        | Hydrosurv Adapter           | Ecosub C2                   | Yes                 | Yes                                        |
-| Planet Ocean | platform status        | Ecosub C2                   | Autonomy Engine             | Yes                 | No                                         |
-| Planet Ocean | mission plan           | Autonomy Engine             | Ecosub C2                   | Yes                 | No                                         |
-| Planet Ocean | mission plan           | Ecosub C2                   | Hydrosurv Adapter           | Yes                 | Yes                                        |
-| Planet Ocean | mission plan           | Hydrosurv Adapter           | Ecosub                      | No                  | Yes                                        |
-| Planet Ocean | observation            | Ecosub                      | Hydrosurv Adapter           | No                  | Yes                                        |
-| Planet Ocean | observation            | Hydrosurv Adapter           | Ecosub C2                   | Yes                 | Yes                                        |
-| Planet Ocean | observation            | Ecosub C2                   | Autonomy Engine             | Yes                 | No                                         |
-| NOC          | platform status        | Ecosub                      | Hydrosurv Adapter           | No                  | Yes                                        |
-| NOC          | platform status        | Hydrosurv Adapter           | Ecosub C2                   | Yes                 | Yes                                        |
-| NOC          | platform status        | Ecosub C2                   | Autonomy Engine             | Yes                 | No                                         |
-| NOC          | mission plan           | Autonomy Engine             | Ecosub C2                   | Yes                 | No                                         |
-| NOC          | mission plan           | Ecosub C2                   | Hydrosurv Adapter           | Yes                 | Yes                                        |
-| NOC          | mission plan           | Hydrosurv Adapter           | Ecosub                      | No                  | Yes                                        |
+| Partner               | Message Type             | Source                | Destination                                | Via Comms Backbone? | Contains Serialized Vehicle-Specific File? | Comment                                                                                  |
+| --------------------- | ------------------------ | --------------------- | ------------------------------------------ | ------------------- | ------------------------------------------ | ---------------------------------------------------------------------------------------- |
+| Hydrosurv (reav)      | platform status-compiled | Reav-60               | Hydrosurv Adapter                          | No                  | Yes                                        | N/A                                                                                      |
+| Hydrosurv (reav)      | platform status          | Hydrosurv Adapter     | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| Hydrosurv (reav)      | mission plan             | Autonomy Engine       | Hydrosurv Adapter                          | Yes                 | No                                         | N/A                                                                                      |
+| Hydrosurv (reav)      | mission plan-compiled    | Hydrosurv Adapter     | Reav-60                                    | No                  | Yes                                        | N/A                                                                                      |
+| Hydrosurv (reav)      | acknowledgement          | Hydrosurv Adapter     | Comms Backbone (Audit)                     | Yes                 | No                                         | When hydrosurv adapter has (a) Received, (b) Sent Plan to Reav, and (c) Executed by Reav |
+| RHU (autonomy engine) | platform status          | C2’s Hydrosurv/Ecosub | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| RHU (autonomy engine) | mission plan             | Autonomy Engine       | C2’s Hydrosurv/Ecosub                      | Yes                 | No                                         | N/A                                                                                      |
+| RHU (autonomy engine) | planning configuration   | GUI                   | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| RHU (autonomy engine) | observation              | Ecosub C2             | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| RHU (autonomy engine) | survey progress          | Ecosub/AH1 C2         | Autonomy Engine                            | TBD                 | TBD                                        | N/A                                                                                      |
+| RHU (autonomy engine) | scanline                 | TBD                   | TBD                                        | TBD                 | TBD                                        | N/A                                                                                      |
+| RHU (autonomy engine) | emergency                | GUI                   | TBD – all                                  | TBD                 | TBD                                        | TBD – all platforms pre-compiled ABORT via Black box                                     |
+| Planet Ocean (ecosub) | platform status-compiled | Ecosub                | Black Box TBC                              | No                  | Yes                                        | Via Hermes + Router                                                                      |
+| Planet Ocean (ecosub) | platform status-compiled | Black Box TBC         | Ecosub C2                                  | Yes                 | Yes                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | platform status          | Ecosub C2             | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| Planet Ocean (ecosub) | mission plan             | Autonomy Engine       | Ecosub C2                                  | Yes                 | No                                         | N/A                                                                                      |
+| Planet Ocean (ecosub) | mission plan             | Ecosub C2             | Black Box TBC                              | Yes                 | Yes                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | mission plan-compiled    | Black Box TBC         | Ecosub                                     | No                  | Yes                                        | Via Hermes + Router                                                                      |
+| Planet Ocean (ecosub) | observation-compiled     | Ecosub                | Black Box TBC                              | No                  | Yes                                        | Via Hermes + Router                                                                      |
+| Planet Ocean (ecosub) | observation-compiled     | Black Box TBC         | Ecosub C2                                  | Yes                 | Yes                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | observation              | Ecosub C2             | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| Planet Ocean (ecosub) | survey progress          | TBD                   | TBD                                        | TBD                 | TBD                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | survey progress          | TBD                   | TBD                                        | TBD                 | TBD                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | scanline                 | TBD                   | TBD                                        | TBD                 | TBD                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | scanline                 | TBD                   | TBD                                        | TBD                 | TBD                                        | N/A                                                                                      |
+| Planet Ocean (ecosub) | emergency                | GUI                   | TBD – Ecosub (ABORT command via Black Box) | TBD                 | TBD                                        | TBD – all platforms pre-compiled ABORT via Black box                                     |
+| NOC (AH1)             | platform status-compiled | AH1                   | Black Box TBC                              | No                  | Yes                                        | Via Hermes + Router                                                                      |
+| NOC (AH1)             | platform status-compiled | Black Box TBC         | NOC C2                                     | Yes                 | Yes                                        | N/A                                                                                      |
+| NOC (AH1)             | platform status          | NOC C2                | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| NOC (AH1)             | scan point               | Autonomy Engine       | NOC C2                                     | Yes                 | No                                         | N/A                                                                                      |
+| NOC (AH1)             | scan point-compiled      | NOC C2                | Black Box TBC                              | Yes                 | Yes                                        | Would this technically be a mission plan-compiled?                                       |
+| NOC (AH1)             | scan point               | Black Box TBC         | Ecosub                                     | No                  | Yes                                        | Via Hermes + Router                                                                      |
+| NOC (AH1)             | survey progress          | TBD                   | TBD                                        | TBD                 | TBD                                        | TBD                                                                                      |
+| NOC (AH1)             | survey progress          | TBD                   | TBD                                        | TBD                 | TBD                                        | TBD                                                                                      |
+| NOC (AH1)             | emergency                | GUI                   | TBD – AH1 (ABORT command via Black Box)    | TBD                 | TBD                                        | TBD – all platforms pre-compiled ABORT via Black box                                     |
+| NOC (GUI)             | planning configuration   | GUI                   | Autonomy Engine                            | Yes                 | No                                         | N/A                                                                                      |
+| NOC (GUI)             | emergency                | GUI                   | TBD                                        | TBD                 | TBD                                        | TBD                                                                                      |
+
+
+## Breakdown of Message Sources & Types
+
+### 1/ Autonomy Engine
+#### Transmit
+* mission plan _(sent per platform??)_
+* TBD: 
+    * Will emergency commands be sent via the autonomy engine (from the GUI) or directly to the C2s?
+
+#### Receive
+* configuration file
+* emergency stop all
+* decoded ecosub status message
+* decoded reav status message
+* decoded autosub-hover status message
+* decoded ecosub observation data _(from squad 1 platforms)_
+
+----------------------------------
+
+### 2/ Ecosub C2
+#### Transmit
+* compiled ecosub mission plan
+* decoded ecosub status message
+* autonomy configuration file
+* decoded ecosub observation data
+
+
+#### Receive
+* mission plan
+* encoded ecosub status message
+* encoded ecosub observation data
+
+----------------------------------
+
+### 3/ Autosub C2 
+#### Transmit
+* compiled autosub-hover mission plan
+* decoded autosub-hover status message
+* autonomy configuration file
+
+
+#### Receive
+* mission plan
+* encoded autosub-hover status message
+
+
+----------------------------------
+
+### 4/ Reav C2 
+#### Transmit
+* decoded reav-60 status message?
+
+
+#### Receive
+* mission plan
+* encoded reav-60 status message?
+
+----------------------------------
+
+### 5/ Hermes Box/Hydrosurv Smart Router? 
+#### Transmit
+* encoded ecosub status message
+* encoded (or is this already decoded?) reav status message
+* encoded autosub status message
+* encoded ecosub observation data
+* TBD: 
+    * are there acknowledgment messages from platforms?
+    * how are we receiving beacon messages per platform?
+
+#### Receive
+* compiled ecosub mission plan
+* compiled reav mission plan
+* compiled autosub mission plan
+* compiled ecosub emergency command
+* compiled reav emergency command
+* compiled autosub emergency command
+------------------------------------
\ No newline at end of file