diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000000000000000000000000000000000000..e9d6e9c06d3cae80108456cf4d39bf012e4286cc
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+formats/__pycache__
diff --git a/formats/acknowledgement.py b/formats/acknowledgement.py
index 70f89a3290cc3324a03caca25275602028ff96fb..944f15e5088318d2662bc32a9f4f06703d749f5d 100644
--- a/formats/acknowledgement.py
+++ b/formats/acknowledgement.py
@@ -2,8 +2,12 @@
     schemas: Acknowledgement status sent by the surface platform to report
     receipt of message.
 """
+# from openapi_schema_validator import validate
+# from jsonschema import validate
+
+
 acknowledgement_schema = {
-    "allOf": [{"$ref": "#/components/schemas/Message"}],
+    "allOf": [{"$ref": "#/definitions/Message"}],
     "type": "object",
     "properties": {
         "acknowledged_message_ID": {
@@ -24,3 +28,8 @@ acknowledgement_schema = {
     },
     "required": ["acknowledged_message_ID", "status"],
 }
+
+# validate(
+#     {"acknowledged_message_ID": "string-type-id", "status": "c2_received"},
+#     acknowledgement_schema,
+# )
diff --git a/formats/mission_plan.py b/formats/mission_plan.py
index 0e6c975c7b2318ab5bcd6478a2e36c89296446c8..5cb530590c4676476f143b5029428d6b5d8eb29a 100644
--- a/formats/mission_plan.py
+++ b/formats/mission_plan.py
@@ -63,7 +63,7 @@ action_schema = {
 }
 
 mission_plan_schema = {
-    "allOf": [{"$ref": "#/components/schemas/Message"}],
+    "allOf": [{"$ref": "#/definitions/Message"}],
     "type": "object",
     "properties": {
         "autonomy_engine_plan_ID": {
diff --git a/formats/observation.py b/formats/observation.py
index d67ff3839eea5ab7a884a6e99ca48294c4cf3f03..a5a251be4e7aab060d44f927926086965f7876e3 100644
--- a/formats/observation.py
+++ b/formats/observation.py
@@ -30,7 +30,7 @@ hits_schema = {
 }
 
 observation_schema = {
-    "allOf": [{"$ref": "#/components/schemas/Message"}],
+    "allOf": [{"$ref": "#/definitions/Message"}],
     "type": "object",
     "properties": {
         "platform_ID": {
diff --git a/formats/planning_configuration.py b/formats/planning_configuration.py
index 50da1848b9611622c6a4bdb216db689d652855af..2050dbfda82b6759236efe003c94b726b90020de 100644
--- a/formats/planning_configuration.py
+++ b/formats/planning_configuration.py
@@ -157,7 +157,7 @@ squad_metadata_schema = {
 }
 
 planning_configuration_schema = {
-    "allOf": [{"$ref": "#/components/schemas/Message"}],
+    "allOf": [{"$ref": "#/definitions/Message"}],
     "type": "object",
     "properties": {
         "planning_config_ID": {
diff --git a/formats/platform_status.py b/formats/platform_status.py
index 87853c67f443394775becf2b9083226cd10151e9..f54b4c3b76e189d72d4a8bfe8e43198cecd44c8f 100644
--- a/formats/platform_status.py
+++ b/formats/platform_status.py
@@ -26,7 +26,7 @@ sensor_schema = {
 }
 
 platform_status_message_schema = {
-    "allOf": [{"$ref": "#/components/schemas/Message"}],
+    "allOf": [{"$ref": "#/definitions/Message"}],
     "type": "object",
     "properties": {
         "platform_ID": {
diff --git a/generate_swagger.py b/generate_swagger.py
index 99938a0b772ea86ac3734e1c789a7f1239d6aa3e..c75f674d5a45d5ab31d10d691fd2d57004e7bc62 100644
--- a/generate_swagger.py
+++ b/generate_swagger.py
@@ -1,7 +1,3 @@
-from flask import Flask
-from flasgger import Swagger
-
-# from . import properties
 from formats.message_wrapper import message_wrapper_schema
 from formats.mission_plan import mission_plan_schema
 from formats.observation import observation_schema
@@ -9,11 +5,16 @@ from formats.planning_configuration import planning_configuration_schema
 from formats.platform_status import platform_status_message_schema
 from formats.acknowledgement import acknowledgement_schema
 
+from flasgger import Swagger
+from flask import Flask
+# from openapi_schema_validator import validate
+from openapi_spec_validator import validate_spec_url
+
 app = Flask(__name__)
 
 swagger_config = {
     "headers": [],
-    "openapi": "3.0.2",
+    "openapi": "3.1",
     "swagger_ui": True,
     "specs_route": "/",
     "info": {
@@ -29,15 +30,13 @@ swagger_config = {
             "model_filter": lambda tag: True,
         }
     ],
-    "components": {
-        "schemas": {
-            "Message": message_wrapper_schema,
-            "MissionPlan": mission_plan_schema,
-            "Observation": observation_schema,
-            "PlanningConfiguration": planning_configuration_schema,
-            "PlatformStatus": platform_status_message_schema,
-            "Acknowledgement": acknowledgement_schema,
-        },
+    "definitions": {
+        "Message": message_wrapper_schema,
+        "MissionPlan": mission_plan_schema,
+        "Observation": observation_schema,
+        "PlanningConfiguration": planning_configuration_schema,
+        "PlatformStatus": platform_status_message_schema,
+        "Acknowledgement": acknowledgement_schema,
     },
     "paths": {
         "/all_messages": {
@@ -50,30 +49,14 @@ swagger_config = {
                             "application/json": {
                                 "schema": {
                                     "oneOf": [
+                                        {"$ref": "#/definitions/Acknowledgement"},
+                                        {"$ref": "#/definitions/PlatformStatus"},
+                                        {"$ref": "#/definitions/MissionPlan"},
+                                        {"$ref": "#/definitions/Observation"},
                                         {
-                                            "$ref": "#/components/"
-                                            + "schemas/Acknowledgement"
-                                        },
-                                        {
-                                            "$ref": "#/components/"
-                                            + "schemas/PlatformStatus"
-                                        },
-                                        {
-                                            "$ref": "#/components/"
-                                            + "schemas/MissionPlan"
-                                        },
-                                        {
-                                            "$ref": "#/components/"
-                                            + "schemas/Observation"
-                                        },
-                                        {
-                                            "$ref": "#/components/"
-                                            + "schemas/PlanningConfiguration"
-                                        },
-                                        {
-                                            "$ref": "#/components/"
-                                            + "schemas/PlatformStatus"
+                                            "$ref": "#/definitions/PlanningConfiguration"
                                         },
+                                        {"$ref": "#/definitions/PlatformStatus"},
                                     ],
                                     "discriminator": {
                                         "propertyName": "message_type",
@@ -90,7 +73,7 @@ swagger_config = {
     "consumes": ["application/json"],
 }
 message_types = [
-    # "Message",
+    "Message",
     "Acknowledgement",
     "MissionPlan",
     "Observation",
@@ -109,7 +92,7 @@ for item in message_types:
                             "schema": {
                                 "allOf": [
                                     {
-                                        "$ref": "#/components/schemas/" + item,
+                                        "$ref": "#/definitions/" + item,
                                     },
                                 ],
                                 "discriminator": {
@@ -125,11 +108,23 @@ for item in message_types:
 
 swag = Swagger(app, config=swagger_config, merge=True)
 
+# validate({"acknowledged_message_ID": "string-type-id", "status": "c2_received"}, acknowledgement_schema)
+
+
 # app.add_url_rule(
 #     '/coordinates',
 #     view_func=Coordinates.as_view('coordinates'),
 #     methods=['GET']
 # )
 
+from openapi_spec_validator import validate_spec, openapi_v3_spec_validator
 if __name__ == "__main__":
     app.run(debug=True)
+    # print(validate_spec_url("http://127.0.0.1:5000/swagger.json"))
+    
+    # If no exception is raised by validate_spec(), the spec is valid.
+    # validate_spec(swagger_config)
+    # print("000 Schema validation passed")
+
+    # errors_iterator = openapi_v3_spec_validator.iter_errors(swagger_config)
+    # print(errors_iterator)
\ No newline at end of file