diff --git a/SAS/TMSS/src/tmss/tmssapp/CMakeLists.txt b/SAS/TMSS/src/tmss/tmssapp/CMakeLists.txt
index 3a7daaa829f09722bd78609d1ec653ec2240d133..47a6fc110c6e09c09bf272f1ee0f0f04a5a65407 100644
--- a/SAS/TMSS/src/tmss/tmssapp/CMakeLists.txt
+++ b/SAS/TMSS/src/tmss/tmssapp/CMakeLists.txt
@@ -22,3 +22,5 @@ add_subdirectory(renderers)
 add_subdirectory(serializers)
 add_subdirectory(viewsets)
 add_subdirectory(adapters)
+add_subdirectory(schemas)
+
diff --git a/SAS/TMSS/src/tmss/tmssapp/populate.py b/SAS/TMSS/src/tmss/tmssapp/populate.py
index 7a16ac32591fc47cb543e0bdf719c70d4b2a5af7..0d5940a18a8bd7bfd9bc3b1c79831c7f5c9abe19 100644
--- a/SAS/TMSS/src/tmss/tmssapp/populate.py
+++ b/SAS/TMSS/src/tmss/tmssapp/populate.py
@@ -18,12 +18,15 @@ import logging
 logger = logging.getLogger(__name__)
 
 import json
+import os
 from lofar.sas.tmss.tmss.tmssapp.subtasks import *
 from lofar.sas.tmss.tmss.tmssapp.models.specification import *
 from lofar.sas.tmss.tmss.tmssapp.models.scheduling import *
 from lofar.common.json_utils import *
 from lofar.common import isTestEnvironment, isDevelopmentEnvironment
 
+working_dir = os.path.dirname(os.path.abspath(__file__))
+
 
 def populate_choices(apps, schema_editor):
     '''
@@ -37,20 +40,43 @@ def populate_choices(apps, schema_editor):
 
 
 def populate_lofar_json_schemas(apps, schema_editor):
+
+    _populate_scheduling_unit_schema()
+    # populate task schema's
+    _populate_stations_schema()
+    _populate_preprocessing_schema()
+    _populate_correlator_calibrator_schema()
+    _populate_observation_with_stations_schema()
+    _populate_calibrator_addon_schema()
+
     _populate_dataproduct_specifications_templates()
     _populate_taskrelation_selection_templates()
     _populate_dataproduct_feedback_templates()
-    _populate_correlator_calibrator_schema()
     _populate_obscontrol_schema()
-    _populate_stations_schema()
     _populate_pipelinecontrol_schema()
-    _populate_preprocessing_schema()
     _populate_connectors()
 
     _populate_qa_files_subtask_template()
     _populate_qa_plots_subtask_template()
 
-    _populate_task_draft_example()
+    #_populate_task_draft_example() # Should be removed later
+    _populate_scheduling_set_for_scheduling_unit_reference()
+
+
+def _populate_scheduling_set_for_scheduling_unit_reference():
+    """
+    Create a Schedule Set to be able to refer to
+    :return:
+    """
+    try:
+        from lofar.sas.tmss.tmss.tmssapp import models
+        from lofar.sas.tmss.test.tmss_test_data_django_models import SchedulingSet_test_data
+        if isTestEnvironment() or isDevelopmentEnvironment():
+            scheduling_set_data = SchedulingSet_test_data(name="Test Scheduling Set")
+            models.SchedulingSet.objects.create(**scheduling_set_data)
+
+    except ImportError:
+        pass
 
 
 def _populate_task_draft_example():
@@ -98,193 +124,53 @@ def populate_resources(apps, schema_editor):
     ResourceType.objects.create(name="cep_storage", description="Amount of storage at CEP processing cluster", resource_unit=ru_bytes)
     ResourceType.objects.create(name="cep_processing_hours", description="Number of processing hours for CEP processing cluster", resource_unit=ru_hours)
 
+
 def populate_misc(apps, schema_editor):
     cluster = Cluster.objects.create(name="CEP4", location="CIT")
     fs = Filesystem.objects.create(name="LustreFS", cluster=cluster, capacity=3.6e15)
 
 
-def _populate_correlator_calibrator_schema():
-    task_template_data = {"name": "correlator schema",
-                          "description": 'correlator schema for calibrator observations',
-                          "version": '0.1',
-                          "schema": json.loads('''
-{
-  "$id": "http://example.com/example.json",
-  "type": "object",
-  "$schema": "http://json-schema.org/draft-06/schema#",
-  "definitions": {
-    "pointing": {
-      "type": "object",
-      "additionalProperties": false,
-      "properties": {
-        "direction_type": {
-          "type": "string",
-          "title": "Reference frame",
-          "description": "",
-          "default": "J2000",
-          "enum": [
-            "J2000",
-            "SUN",
-            "MOON",
-            "MERCURY",
-            "VENUS",
-            "MARS",
-            "JUPITER",
-            "SATURN",
-            "URANUS",
-            "NEPTUNE",
-            "PLUTO"
-          ]
-        },
-        "angle1": {
-          "type": "number",
-          "title": "Angle 1",
-          "description": "First angle (f.e. RA)",
-          "default": 0
-        },
-        "angle2": {
-          "type": "number",
-          "title": "Angle 2",
-          "description": "Second angle (f.e. DEC)",
-          "default": 0
-        }
-      }
-    }
-  },
-  "additionalProperties": false,
-  "properties": {
-    "duration": {
-      "type": "number",
-      "title": "Duration (seconds)",
-      "description": "Duration of this observation",
-      "default": 60,
-      "minimum": 1
-    },
-    "calibrator": {
-      "type": "object",
-      "additionalProperties": false,
-      "default": {},
-      "properties": {
-        "enabled": {
-          "type": "boolean",
-          "title": "Calibrator",
-          "description": "Replace targets by calibrators",
-          "default": false
-        },
-        "autoselect": {
-          "type": "boolean",
-          "title": "Auto-select",
-          "description": "Auto-select calibrator based on elevation",
-          "default": false
-        },
-        "pointing": {
-          "title": "Digital pointing",
-          "$ref": "#/definitions/pointing",
-          "default": {}
-        }
-      }
-    },
-    "channels_per_subband": {
-      "type": "integer",
-      "title": "Channels/subband",
-      "description": "Number of frequency bands per subband",
-      "default": 64,
-      "minimum": 8,
-      "enum": [
-        8,
-        16,
-        32,
-        64,
-        128,
-        256,
-        512,
-        1024
-      ]
-    },
-    "integration_time": {
-      "type": "number",
-      "title": "Integration time (seconds)",
-      "description": "Desired integration period",
-      "default": 1,
-      "minimum": 0.1
-    },
-    "storage_cluster": {
-      "type": "string",
-      "title": "Storage cluster",
-      "description": "Cluster to write output to",
-      "default": "CEP4",
-      "enum": [
-        "CEP4",
-        "DragNet"
-      ]
-    },
-    "QA": {
-      "type": "object",
-      "title": "Quality Assurance",
-      "default": {},
-      "description": "Specify Quality Assurance steps for this observation",
-      "properties": {
-        "file_conversion": {
-          "type": "object",
-          "title": "File Conversion",
-          "default": {},
-          "description": "Create a QA file for the observation",
-          "properties": {
-            "enabled": {
-              "type": "boolean",
-              "title": "enabled",
-              "default": true,
-              "description": "Do/Don't create a QA file for the observation"
-            },
-            "nr_of_subbands": {
-              "type": "integer",
-              "title": "#subbands",
-              "default": -1,
-              "description": "Keep this number of subbands from the observation in the QA file, or all if -1"
-            },
-            "nr_of_timestamps": {
-              "type": "integer",
-              "title": "#timestamps",
-              "default": 256,
-              "minimum": 1,
-              "description": "Extract this number of timestamps from the observation in the QA file (equidistantanly sampled, no averaging/interpolation)"
-            }
-          },
-          "additionalProperties": false
-        },
-        "plots": {
-          "type": "object",
-          "title": "Plots",
-          "default": {},
-          "description": "Create dynamic spectrum plots",
-          "properties": {
-            "enabled": {
-              "type": "boolean",
-              "title": "enabled",
-              "default": true,
-              "description": "Do/Don't create plots from the QA file from the observation"
-            },
-            "autocorrelation": {
-              "type": "boolean",
-              "title": "autocorrelation",
-              "default": true,
-              "description": "Create autocorrelation plots for all stations"
-            },
-            "crosscorrelation": {
-              "type": "boolean",
-              "title": "crosscorrelation",
-              "default": true,
-              "description": "Create crosscorrelation plots for all baselines"
-            }
-          },
-          "additionalProperties": false
-        }
-      },
-      "additionalProperties": false
-    }
-  }
-}'''), "tags": []}
+def _populate_scheduling_unit_schema():
+    with open(os.path.join(working_dir, "schemas/scheduling-unit.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        scheduling_unit_template_data = {"name": "scheduling unit schema",
+                                         "description": 'Schema for UC1 HBA scheduling unit',
+                                         "version": '0.1',
+                                         "tags": ["UC1"],
+                                         "schema": json_data}
+    SchedulingUnitTemplate.objects.create(**scheduling_unit_template_data)
+
+
+def _populate_observation_with_stations_schema():
+    with open(os.path.join(working_dir, "schemas/task-observation-with-stations.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        task_template_data = {"name": "observation schema",
+                              "description": 'schema for observations',
+                              "version": '0.1',
+                              "tags": [],
+                              "schema": json_data}
+    TaskTemplate.objects.create(**task_template_data)
+
 
+def _populate_calibrator_addon_schema():
+    with open(os.path.join(working_dir, "schemas/task-calibrator-addon.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        task_template_data = {"name": "calibrator addon schema",
+                              "description": 'addon schema for calibrator observations',
+                              "version": '0.1',
+                              "tags": [],
+                              "schema": json_data}
+    TaskTemplate.objects.create(**task_template_data)
+
+
+def _populate_correlator_calibrator_schema():
+    with open(os.path.join(working_dir, "schemas/task-correlator.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        task_template_data = {"name": "correlator schema",
+                              "description": 'correlator schema for calibrator observations',
+                              "version": '0.1',
+                              "tags": [],
+                              "schema": json_data}
     TaskTemplate.objects.create(**task_template_data)
 
 
@@ -618,250 +504,13 @@ def _populate_obscontrol_schema():
 
 
 def _populate_stations_schema():
-    task_template_data = {"name": "stations schema",
-                          "description": 'Generic station settings and selection',
-                          "version": '0.1',
-                          "schema": json.loads('''
-{
-    "$id": "http://example.com/example.json",
-    "type": "object",
-    "$schema": "http://json-schema.org/draft-06/schema#",
-    "definitions": {
-        "pointing": {
-            "type": "object",
-            "additionalProperties": false,
-            "properties": {
-                "direction_type": {
-                    "type": "string",
-                    "title": "Reference frame",
-                    "description": "",
-                    "default": "J2000",
-                    "enum": [
-                        "J2000",
-                        "SUN",
-                        "MOON",
-                        "MERCURY",
-                        "VENUS",
-                        "MARS",
-                        "JUPITER",
-                        "SATURN",
-                        "URANUS",
-                        "NEPTUNE",
-                        "PLUTO"
-                    ]
-                },
-                "angle1": {
-                    "type": "number",
-                    "title": "Angle 1",
-                    "description": "First angle (f.e. RA)",
-                    "default": 0
-                },
-                "angle2": {
-                    "type": "number",
-                    "title": "Angle 2",
-                    "description": "Second angle (f.e. DEC)",
-                    "default": 0
-                }
-            }
-        }
-    },
-    "additionalProperties": false,
-    "properties": {
-        "stations": {
-            "title": "Station list",
-            "type": "array",
-            "default": [{}],
-            "oneOf": [{
-                    "type": "array",
-                    "title": "Fixed list",
-                    "additionalItems": false,
-                    "additionalProperties": false,
-                    "default": ["CS001"],
-                    "items": {
-                        "type": "string",
-                        "enum": [
-                            "CS001",
-                            "CS002",
-                            "CS003",
-                            "CS004",
-                            "CS005",
-                            "CS006",
-                            "CS007",
-                            "CS011",
-                            "CS013",
-                            "CS017",
-                            "CS021",
-                            "CS024",
-                            "CS026",
-                            "CS028",
-                            "CS030",
-                            "CS031",
-                            "CS032",
-                            "CS101",
-                            "CS103",
-                            "CS201",
-                            "CS301",
-                            "CS302",
-                            "CS401",
-                            "CS501",
-                            "RS104",
-                            "RS106",
-                            "RS205",
-                            "RS208",
-                            "RS210",
-                            "RS305",
-                            "RS306",
-                            "RS307",
-                            "RS310",
-                            "RS406",
-                            "RS407",
-                            "RS409",
-                            "RS410",
-                            "RS503",
-                            "RS508",
-                            "RS509",
-                            "DE601",
-                            "DE602",
-                            "DE603",
-                            "DE604",
-                            "DE605",
-                            "FR606",
-                            "SE607",
-                            "UK608",
-                            "DE609",
-                            "PL610",
-                            "PL611",
-                            "PL612",
-                            "IE613",
-                            "LV614"
-                        ],
-                        "title": "Station",
-                        "description": ""
-                    },
-                    "minItems": 1,
-                    "uniqueItems": true
-                },
-                {
-                    "title": "Dynamic list",
-                    "type": "array",
-                    "additionalItems": false,
-                    "default": [{}],
-                    "items": {
-                        "type": "object",
-                        "title": "Station set",
-                        "headerTemplate": "{{ self.group }}",
-                        "additionalProperties": false,
-                        "default": {},
-                        "properties": {
-                            "group": {
-                                "type": "string",
-                                "title": "Group/station",
-                                "description": "Which (group of) station(s) to select from",
-                                "default": "ALL",
-                                "enum": [
-                                    "ALL",
-                                    "SUPERTERP",
-                                    "CORE",
-                                    "REMOTE",
-                                    "DUTCH",
-                                    "INTERNATIONAL"
-                                ]
-                            },
-                            "min_stations": {
-                                "type": "integer",
-                                "title": "Minimum nr of stations",
-                                "description": "Number of stations to use within group/station",
-                                "default": 1,
-                                "minimum": 0
-                            }
-                        }
-                    }
-                }
-            ]
-        },
-        "antenna_set": {
-            "type": "string",
-            "title": "Antenna set",
-            "description": "Fields & antennas to use",
-            "default": "HBA_DUAL",
-            "enum": [
-                "HBA_DUAL",
-                "HBA_DUAL_INNER",
-                "HBA_JOINED",
-                "HBA_JOINED_INNER",
-                "HBA_ONE",
-                "HBA_ONE_INNER",
-                "HBA_ZERO",
-                "HBA_ZERO_INNER",
-                "LBA_INNER",
-                "LBA_OUTER",
-                "LBA_SPARSE_EVEN",
-                "LBA_SPARSE_ODD",
-                "LBA_ALL"
-            ]
-        },
-        "filter": {
-            "type": "string",
-            "title": "Band-pass filter",
-            "description": "Must match antenna type",
-            "default": "HBA_110_190",
-            "enum": [
-                "LBA_10_70",
-                "LBA_30_70",
-                "LBA_10_90",
-                "LBA_30_90",
-                "HBA_110_190",
-                "HBA_210_250"
-            ]
-        },
-        "analog_pointing": {
-            "title": "Analog pointing",
-            "description": "HBA only",
-            "default": {},
-            "$ref": "#/definitions/pointing"
-        },
-        "beams": {
-            "type": "array",
-            "title": "Beams",
-            "additionalItems": false,
-            "default": [{}],
-            "items": {
-                "title": "Beam",
-                "headerTemplate": "{{ i0 }} - {{ self.name }}",
-                "type": "object",
-                "additionalProperties": false,
-                "default": {},
-                "properties": {
-                    "name": {
-                        "type": "string",
-                        "title": "Name/target",
-                        "description": "Identifier for this beam",
-                        "default": ""
-                    },
-                    "digital_pointing": {
-                        "title": "Digital pointing",
-                        "default": {},
-                        "$ref": "#/definitions/pointing"
-                    },
-                    "subbands": {
-                        "type": "array",
-                        "title": "Subband list",
-                        "additionalItems": false,
-                        "default": [],
-                        "items": {
-                            "type": "integer",
-                            "title": "Subband",
-                            "minimum": 0,
-                            "maximum": 511
-                        }
-                    }
-                }
-            }
-        }
-    }
-}'''),
-                          "tags": []}
-
+    with open(os.path.join(working_dir, "schemas/task-stations.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        task_template_data = {"name": "stations schema",
+                              "description": 'Generic station settings and selection',
+                              "version": '0.1',
+                              "tags": [],
+                              "schema": json_data}
     TaskTemplate.objects.create(**task_template_data)
 
 
@@ -1038,172 +687,15 @@ def _populate_qa_plots_subtask_template():
 
     SubtaskTemplate.objects.create(**subtask_template_data)
 
-def _populate_preprocessing_schema():
-    task_template_data = {"name": "preprocessing schema",
-                          "description": 'preprocessing settings',
-                          "version": '0.1',
-                          "schema": json.loads('''
-{
-  "$id": "http://example.com/example.json",
-  "type": "object",
-  "$schema": "http://json-schema.org/draft-06/schema#",
-  "additionalProperties": false,
-  "definitions": {
-    "demix_strategy": {
-      "type": "string",
-      "default": "auto",
-      "enum": [
-        "auto",
-        "yes",
-        "no"
-      ]
-    }
-  },
-  "properties": {
-    "flag": {
-      "title": "Flagging",
-      "type": "object",
-      "additionalProperties": false,
-      "properties": {
-        "outerchannels": {
-          "type": "boolean",
-          "title": "Flag outer channels",
-          "default": true
-        },
-        "autocorrelations": {
-          "type": "boolean",
-          "title": "Flag auto correlations",
-          "default": true
-        },
-        "rfi_strategy": {
-          "type": "string",
-          "title": "RFI flagging strategy",
-          "default": "auto",
-          "enum": [
-            "none",
-            "auto",
-            "HBAdefault",
-            "LBAdefault"
-          ]
-        }
-      },
-      "required": [
-        "outerchannels",
-        "autocorrelations",
-        "rfi_strategy"
-      ],
-      "default": {}
-    },
-    "average": {
-      "title": "Averaging",
-      "type": "object",
-      "additionalProperties": false,
-      "properties": {
-        "frequency_steps": {
-          "type": "integer",
-          "title": "Frequency steps",
-          "default": 4,
-          "minimum": 1
-        },
-        "time_steps": {
-          "type": "integer",
-          "title": "Time steps",
-          "default": 1,
-          "minimum": 1
-        }
-      },
-      "required": [
-        "frequency_steps",
-        "time_steps"
-      ],
-      "default": {}
-    },
-    "demix": {
-      "title": "Demixing",
-      "type": "object",
-      "additionalProperties": false,
-      "properties": {
-        "frequency_steps": {
-          "type": "integer",
-          "title": "Frequency steps",
-          "description": "Must be a multiple of the averaging frequency steps",
-          "default": 64,
-          "minimum": 1
-        },
-        "time_steps": {
-          "type": "integer",
-          "title": "Time steps",
-          "description": "Must be a multiple of the averaging time steps",
-          "default": 10,
-          "minimum": 1
-        },
-        "ignore_target": {
-          "type": "boolean",
-          "title": "Ignore target",
-          "default": false
-        },
-        "sources": {
-          "title": "Sources",
-          "type": "object",
-          "additionalProperties": false,
-          "properties": {
-            "CasA": {
-              "title": "CasA",
-              "$ref": "#/definitions/demix_strategy"
-            },
-            "CygA": {
-              "title": "CygA",
-              "$ref": "#/definitions/demix_strategy"
-            },
-            "HerA": {
-              "title": "HerA",
-              "$ref": "#/definitions/demix_strategy"
-            },
-            "HydraA": {
-              "title": "HyrdraA",
-              "$ref": "#/definitions/demix_strategy"
-            },
-            "TauA": {
-              "title": "TauA",
-              "$ref": "#/definitions/demix_strategy"
-            },
-            "VirA": {
-              "title": "VirA",
-              "$ref": "#/definitions/demix_strategy"
-            }
-          },
-          "default": {}
-        }
-      },
-      "required": [
-        "frequency_steps",
-        "time_steps",
-        "ignore_target",
-        "sources"
-      ],
-      "options": {
-        "dependencies": {
-          "demix": true
-        }
-      },
-      "default": {}
-    },
-    "storagemanager": {
-      "type": "string",
-      "title": "Storage Manager",
-      "default": "dysco",
-      "enum": [
-        "basic",
-        "dysco"
-      ]
-    }
-  },
-  "required": [
-    "storagemanager"
-  ]
-}'''),
-                          "tags": []}
 
+def _populate_preprocessing_schema():
+    with open(os.path.join(working_dir, "schemas/task-preprocessing.json")) as json_file:
+        json_data = json.loads(json_file.read())
+        task_template_data = {"name": "preprocessing schema",
+                              "description": 'preprocessing settings',
+                              "version": '0.1',
+                              "tags": [],
+                              "schema": json_data}
     TaskTemplate.objects.create(**task_template_data)
 
 
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/CMakeLists.txt b/SAS/TMSS/src/tmss/tmssapp/schemas/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..f0afa83fb26ffb7c64b14badad130086e54952c6
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/CMakeLists.txt
@@ -0,0 +1,14 @@
+
+include(PythonInstall)
+
+set(_json_schema_files
+    scheduling-unit.json
+    task-calibrator-addon.json
+    task-observation-with-stations.json
+    task-stations.json
+    task-correlator.json
+    task-preprocessing.json
+    )
+
+python_install(${_json_schema_files}
+    DESTINATION lofar/sas/tmss/tmss/tmssapp/schemas)
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling-unit.json b/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling-unit.json
new file mode 100644
index 0000000000000000000000000000000000000000..6dd56baffaa1a6796d3ae8c11eee7cb2f8698eb1
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/scheduling-unit.json
@@ -0,0 +1,174 @@
+{
+  "$id": "http://example.com/example.json",
+  "type": "object",
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "additionalProperties": false,
+  "definitions": {
+    "task_connector": {
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "role": {
+          "type": "string",
+          "title": "Role"
+        },
+        "datatype": {
+          "type": "string",
+          "title": "Data Type"
+        }
+      },
+      "required": [
+        "role",
+        "datatype"
+      ]
+    }
+  },
+  "properties": {
+    "tasks": {
+      "title": "Tasks",
+      "type": "array",
+      "additionalItems": false,
+      "uniqueItems": true,
+      "items": {
+        "type": "object",
+        "title": "Task",
+        "additionalProperties": false,
+        "properties": {
+          "name": {
+            "type": "string",
+            "title": "Name (unique)"
+          },
+          "description": {
+            "type": "string",
+            "title": "Description"
+          },
+          "tags": {
+            "type": "array",
+            "addtionalItems": false,
+            "uniqueItems": true,
+            "items": {
+              "type": "string",
+              "title": "Tag"
+            }
+          },
+          "specifications_doc": {
+            "type": "object",
+            "title": "Specifications",
+            "addtionalProperties": true
+          },
+          "specifications_template": {
+            "type": "string",
+            "title": "Name of Template for Specifications"
+          }
+        },
+        "required": [
+          "name",
+          "specifications_doc",
+          "specifications_template"
+        ]
+      }
+    },
+    "task_relations": {
+      "title": "Task Relations",
+      "type": "array",
+      "additionalItems": false,
+      "uniqueItems": true,
+      "items": {
+        "type": "object",
+        "title": "Task Relation",
+        "additionalProperties": false,
+        "properties": {
+          "producer": {
+            "type": "string",
+            "title": "Name of Producer Task"
+          },
+          "consumer": {
+            "type": "string",
+            "title": "Name of Consumer Task"
+          },
+          "tags": {
+            "type": "array",
+            "addtionalItems": false,
+            "uniqueItems": true,
+            "items": {
+              "type": "string",
+              "title": "Tag"
+            }
+          },
+          "input": {
+            "title": "Input I/O Connector",
+            "$ref": "#/definitions/task_connector"
+          },
+          "output": {
+            "title": "Output I/O Connector",
+            "$ref": "#/definitions/task_connector"
+          },
+          "dataformat": {
+            "type": "string",
+            "title": "Data Format"
+          },
+          "selection_doc": {
+            "type": "object",
+            "title": "Filter selection",
+            "addtionalProperties": true
+          },
+          "selection_template": {
+            "type": "string",
+            "title": "Name of Template for Selection"
+          }
+        },
+        "required": [
+          "producer",
+          "consumer",
+          "input",
+          "output",
+          "selection_template"
+        ]
+      }
+    },
+    "task_scheduling_relations": {
+      "title": "Task Scheduling Relations",
+      "type": "array",
+      "additionalItems": false,
+      "uniqueItems": true,
+      "items": {
+        "type": "object",
+        "title": "Task Scheduling Relation",
+        "additionalProperties": false,
+        "properties": {
+          "first": {
+            "type": "string",
+            "title": "Name of First Task"
+          },
+          "second": {
+            "type": "string",
+            "title": "Name of Second Task"
+          },
+          "placement": {
+            "type": "string",
+            "title": "Placement",
+            "description": "How `first' relates to `second'",
+            "enum": [
+              "before",
+              "after",
+              "parallel"
+            ],
+            "default": "before"
+          },
+          "time_offset": {
+            "type": "number",
+            "title": "Time Offset",
+            "description": "Distance between `first' and `second' (in seconds)",
+            "default": 60
+          }
+        },
+        "required": [
+          "first",
+          "second",
+          "placement"
+        ]
+      }
+    }
+  },
+  "required": []
+}
\ No newline at end of file
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/task-calibrator-addon.json b/SAS/TMSS/src/tmss/tmssapp/schemas/task-calibrator-addon.json
new file mode 100644
index 0000000000000000000000000000000000000000..0d86b1861788243b88d6ec47fbff626da42f999a
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/task-calibrator-addon.json
@@ -0,0 +1,68 @@
+{
+  "$id": "http://example.com/example.json",
+  "type": "object",
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "definitions": {
+    "pointing": {
+      "type": "object",
+      "additionalProperties": false,
+      "format": "grid",
+      "properties": {
+        "direction_type": {
+          "type": "string",
+          "title": "Reference frame",
+          "description": "",
+          "default": "J2000",
+          "enum": [
+            "J2000",
+            "SUN",
+            "MOON",
+            "MERCURY",
+            "VENUS",
+            "MARS",
+            "JUPITER",
+            "SATURN",
+            "URANUS",
+            "NEPTUNE",
+            "PLUTO"
+          ]
+        },
+        "angle1": {
+          "type": "number",
+          "title": "Angle 1",
+          "description": "First angle (f.e. RA)",
+          "default": 0
+        },
+        "angle2": {
+          "type": "number",
+          "title": "Angle 2",
+          "description": "Second angle (f.e. DEC)",
+          "default": 0
+        }
+      }
+    }
+  },
+  "format": "grid",
+  "additionalProperties": false,
+  "properties": {
+    "duration": {
+      "type": "number",
+      "title": "Duration (seconds)",
+      "description": "Duration of this observation",
+      "default": 600,
+      "minimum": 1
+    },
+    "autoselect": {
+      "type": "boolean",
+      "format": "checkbox",
+      "title": "Auto-select",
+      "description": "Auto-select calibrator based on elevation",
+      "default": true
+    },
+    "pointing": {
+      "title": "Digital pointing",
+      "description": "Manually selected calibrator",
+      "$ref": "#/definitions/pointing"
+    }
+  }, "required": ["autoselect"]
+}
\ No newline at end of file
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/task-correlator.json b/SAS/TMSS/src/tmss/tmssapp/schemas/task-correlator.json
new file mode 100644
index 0000000000000000000000000000000000000000..55b73899eb0e499455bb37d14df1207eca65a43a
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/task-correlator.json
@@ -0,0 +1,176 @@
+{
+  "$id": "http://example.com/example.json",
+  "type": "object",
+  "$schema": "http://json-schema.org/draft-06/schema#",
+  "definitions": {
+    "pointing": {
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "direction_type": {
+          "type": "string",
+          "title": "Reference frame",
+          "description": "",
+          "default": "J2000",
+          "enum": [
+            "J2000",
+            "SUN",
+            "MOON",
+            "MERCURY",
+            "VENUS",
+            "MARS",
+            "JUPITER",
+            "SATURN",
+            "URANUS",
+            "NEPTUNE",
+            "PLUTO"
+          ]
+        },
+        "angle1": {
+          "type": "number",
+          "title": "Angle 1",
+          "description": "First angle (f.e. RA)",
+          "default": 0
+        },
+        "angle2": {
+          "type": "number",
+          "title": "Angle 2",
+          "description": "Second angle (f.e. DEC)",
+          "default": 0
+        }
+      }
+    }
+  },
+  "additionalProperties": false,
+  "properties": {
+    "duration": {
+      "type": "number",
+      "title": "Duration (seconds)",
+      "description": "Duration of this observation",
+      "default": 60,
+      "minimum": 1
+    },
+    "calibrator": {
+      "type": "object",
+      "additionalProperties": false,
+      "default": {},
+      "properties": {
+        "enabled": {
+          "type": "boolean",
+          "title": "Calibrator",
+          "description": "Replace targets by calibrators",
+          "default": false
+        },
+        "autoselect": {
+          "type": "boolean",
+          "title": "Auto-select",
+          "description": "Auto-select calibrator based on elevation",
+          "default": false
+        },
+        "pointing": {
+          "title": "Digital pointing",
+          "$ref": "#/definitions/pointing",
+          "default": {}
+        }
+      }
+    },
+    "channels_per_subband": {
+      "type": "integer",
+      "title": "Channels/subband",
+      "description": "Number of frequency bands per subband",
+      "default": 64,
+      "minimum": 8,
+      "enum": [
+        8,
+        16,
+        32,
+        64,
+        128,
+        256,
+        512,
+        1024
+      ]
+    },
+    "integration_time": {
+      "type": "number",
+      "title": "Integration time (seconds)",
+      "description": "Desired integration period",
+      "default": 1,
+      "minimum": 0.1
+    },
+    "storage_cluster": {
+      "type": "string",
+      "title": "Storage cluster",
+      "description": "Cluster to write output to",
+      "default": "CEP4",
+      "enum": [
+        "CEP4",
+        "DragNet"
+      ]
+    },
+    "QA": {
+      "type": "object",
+      "title": "Quality Assurance",
+      "default": {},
+      "description": "Specify Quality Assurance steps for this observation",
+      "properties": {
+        "file_conversion": {
+          "type": "object",
+          "title": "File Conversion",
+          "default": {},
+          "description": "Create a QA file for the observation",
+          "properties": {
+            "enabled": {
+              "type": "boolean",
+              "title": "enabled",
+              "default": true,
+              "description": "Do/Don't create a QA file for the observation"
+            },
+            "nr_of_subbands": {
+              "type": "integer",
+              "title": "#subbands",
+              "default": -1,
+              "description": "Keep this number of subbands from the observation in the QA file, or all if -1"
+            },
+            "nr_of_timestamps": {
+              "type": "integer",
+              "title": "#timestamps",
+              "default": 256,
+              "minimum": 1,
+              "description": "Extract this number of timestamps from the observation in the QA file (equidistantanly sampled, no averaging/interpolation)"
+            }
+          },
+          "additionalProperties": false
+        },
+        "plots": {
+          "type": "object",
+          "title": "Plots",
+          "default": {},
+          "description": "Create dynamic spectrum plots",
+          "properties": {
+            "enabled": {
+              "type": "boolean",
+              "title": "enabled",
+              "default": true,
+              "description": "Do/Don't create plots from the QA file from the observation"
+            },
+            "autocorrelation": {
+              "type": "boolean",
+              "title": "autocorrelation",
+              "default": true,
+              "description": "Create autocorrelation plots for all stations"
+            },
+            "crosscorrelation": {
+              "type": "boolean",
+              "title": "crosscorrelation",
+              "default": true,
+              "description": "Create crosscorrelation plots for all baselines"
+            }
+          },
+          "additionalProperties": false
+        }
+      },
+      "additionalProperties": false
+    }
+  }
+}
\ No newline at end of file
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/task-observation-with-stations.json b/SAS/TMSS/src/tmss/tmssapp/schemas/task-observation-with-stations.json
new file mode 100644
index 0000000000000000000000000000000000000000..9bfccc111092ca5946078edd7331cb29faf8c567
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/task-observation-with-stations.json
@@ -0,0 +1,307 @@
+{
+  "$id": "http://example.com/example.json",
+  "type": "object",
+  "$schema": "http://json-schema.org/draft-07/schema#",
+  "definitions": {
+    "pointing": {
+      "type": "object",
+      "additionalProperties": false,
+      "format": "grid",
+      "properties": {
+        "direction_type": {
+          "type": "string",
+          "title": "Reference frame",
+          "description": "",
+          "default": "J2000",
+          "enum": [
+            "J2000",
+            "SUN",
+            "MOON",
+            "MERCURY",
+            "VENUS",
+            "MARS",
+            "JUPITER",
+            "SATURN",
+            "URANUS",
+            "NEPTUNE",
+            "PLUTO"
+          ]
+        },
+        "angle1": {
+          "type": "number",
+          "title": "Angle 1",
+          "description": "First angle (f.e. RA)",
+          "default": 0
+        },
+        "angle2": {
+          "type": "number",
+          "title": "Angle 2",
+          "description": "Second angle (f.e. DEC)",
+          "default": 0
+        }
+      },
+      "required": [
+        "angle1",
+        "angle2"
+      ]
+    }
+  },
+  "format": "grid",
+  "additionalProperties": false,
+  "properties": {
+    "stations": {
+      "title": "Station list",
+      "oneOf": [
+        {
+          "type": "array",
+          "title": "Fixed list",
+          "format": "grid",
+          "additionalItems": false,
+          "additionalProperties": false,
+          "items": {
+            "type": "string",
+            "enum": [
+              "CS001",
+              "CS002",
+              "CS003",
+              "CS004",
+              "CS005",
+              "CS006",
+              "CS007",
+              "CS011",
+              "CS013",
+              "CS017",
+              "CS021",
+              "CS024",
+              "CS026",
+              "CS028",
+              "CS030",
+              "CS031",
+              "CS032",
+              "CS101",
+              "CS103",
+              "CS201",
+              "CS301",
+              "CS302",
+              "CS401",
+              "CS501",
+              "RS104",
+              "RS106",
+              "RS205",
+              "RS208",
+              "RS210",
+              "RS305",
+              "RS306",
+              "RS307",
+              "RS310",
+              "RS406",
+              "RS407",
+              "RS409",
+              "RS410",
+              "RS503",
+              "RS508",
+              "RS509",
+              "DE601",
+              "DE602",
+              "DE603",
+              "DE604",
+              "DE605",
+              "FR606",
+              "SE607",
+              "UK608",
+              "DE609",
+              "PL610",
+              "PL611",
+              "PL612",
+              "IE613",
+              "LV614"
+            ],
+            "title": "Station",
+            "description": ""
+          },
+          "minItems": 1,
+          "uniqueItems": true
+        },
+        {
+          "title": "Dynamic list",
+          "type": "array",
+          "format": "tabs",
+          "additionalItems": false,
+          "items": {
+            "type": "object",
+            "format": "grid",
+            "title": "Station set",
+            "headerTemplate": "{{ self.group }}",
+            "additionalProperties": false,
+            "properties": {
+              "group": {
+                "type": "string",
+                "title": "Group/station",
+                "description": "Which (group of) station(s) to select from",
+                "default": "ALL",
+                "enum": [
+                  "ALL",
+                  "SUPERTERP",
+                  "CORE",
+                  "REMOTE",
+                  "DUTCH",
+                  "INTERNATIONAL"
+                ]
+              },
+              "min_stations": {
+                "type": "integer",
+                "title": "Minimum nr of stations",
+                "description": "Number of stations to use within group/station",
+                "default": 1,
+                "minimum": 0
+              }
+            },
+            "required": [
+              "group",
+              "min_stations"
+            ]
+          }
+        }
+      ]
+    },
+    "antenna_set": {
+      "type": "string",
+      "title": "Antenna set",
+      "description": "Fields & antennas to use",
+      "default": "HBA_DUAL",
+      "enum": [
+        "HBA_DUAL",
+        "HBA_DUAL_INNER",
+        "HBA_ONE",
+        "HBA_ONE_INNER",
+        "HBA_ZERO",
+        "HBA_ZERO_INNER",
+        "LBA_INNER",
+        "LBA_OUTER",
+        "LBA_SPARSE_EVEN",
+        "LBA_SPARSE_ODD",
+        "LBA_ALL"
+      ]
+    },
+    "filter": {
+      "type": "string",
+      "title": "Band-pass filter",
+      "description": "Must match antenna type",
+      "default": "HBA_110_190",
+      "enum": [
+        "LBA_10_70",
+        "LBA_30_70",
+        "LBA_10_90",
+        "LBA_30_90",
+        "HBA_110_190",
+        "HBA_210_250"
+      ]
+    },
+    "analog_pointing": {
+      "title": "Analog pointing",
+      "description": "HBA only",
+      "$ref": "#/definitions/pointing"
+    },
+    "beams": {
+      "type": "array",
+      "title": "Beams",
+      "format": "tabs",
+      "additionalItems": false,
+      "items": {
+        "title": "Beam",
+        "headerTemplate": "{{ i0 }} - {{ self.name }}",
+        "type": "object",
+        "additionalProperties": false,
+        "properties": {
+          "name": {
+            "type": "string",
+            "title": "Name/target",
+            "description": "Identifier for this beam",
+            "default": ""
+          },
+          "digital_pointing": {
+            "title": "Digital pointing",
+            "$ref": "#/definitions/pointing"
+          },
+          "subbands": {
+            "type": "array",
+            "title": "Subband list",
+            "format": "table",
+            "additionalItems": false,
+            "items": {
+              "type": "integer",
+              "title": "Subband",
+              "minimum": 0,
+              "maximum": 511
+            }
+          }
+        },
+        "required": [
+          "digital_pointing",
+          "subbands"
+        ]
+      }
+    },
+    "duration": {
+      "type": "number",
+      "title": "Duration (seconds)",
+      "description": "Duration of this observation",
+      "default": 300,
+      "minimum": 1
+    },
+    "correlator": {
+      "title": "Correlator Settings",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "channels_per_subband": {
+          "type": "integer",
+          "title": "Channels/subband",
+          "description": "Number of frequency bands per subband",
+          "default": 64,
+          "minimum": 8,
+          "enum": [
+            8,
+            16,
+            32,
+            64,
+            128,
+            256,
+            512,
+            1024
+          ]
+        },
+        "integration_time": {
+          "type": "number",
+          "title": "Integration time (seconds)",
+          "description": "Desired integration period",
+          "default": 1,
+          "minimum": 0.1
+        },
+        "storage_cluster": {
+          "type": "string",
+          "title": "Storage cluster",
+          "description": "Cluster to write output to",
+          "default": "CEP4",
+          "enum": [
+            "CEP4",
+            "DragNet"
+          ]
+        }
+      },
+      "required": [
+        "channels_per_subband",
+        "integration_time",
+        "storage_cluster"
+      ]
+    }
+  },
+  "required": [
+    "stations",
+    "antenna_set",
+    "filter",
+    "beams",
+    "duration",
+    "correlator"
+  ]
+}
\ No newline at end of file
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/task-preprocessing.json b/SAS/TMSS/src/tmss/tmssapp/schemas/task-preprocessing.json
new file mode 100644
index 0000000000000000000000000000000000000000..e23f297b3abde73a2cde2291b084bcc9d5129224
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/task-preprocessing.json
@@ -0,0 +1,159 @@
+{
+  "$id": "http://example.com/example.json",
+  "type": "object",
+  "$schema": "http://json-schema.org/draft-06/schema#",
+  "additionalProperties": false,
+  "definitions": {
+    "demix_strategy": {
+      "type": "string",
+      "default": "auto",
+      "enum": [
+        "auto",
+        "yes",
+        "no"
+      ]
+    }
+  },
+  "properties": {
+    "flag": {
+      "title": "Flagging",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "outerchannels": {
+          "type": "boolean",
+          "title": "Flag outer channels",
+          "default": true
+        },
+        "autocorrelations": {
+          "type": "boolean",
+          "title": "Flag auto correlations",
+          "default": true
+        },
+        "rfi_strategy": {
+          "type": "string",
+          "title": "RFI flagging strategy",
+          "default": "auto",
+          "enum": [
+            "none",
+            "auto",
+            "HBAdefault",
+            "LBAdefault"
+          ]
+        }
+      },
+      "required": [
+        "outerchannels",
+        "autocorrelations",
+        "rfi_strategy"
+      ],
+      "default": {}
+    },
+    "average": {
+      "title": "Averaging",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "frequency_steps": {
+          "type": "integer",
+          "title": "Frequency steps",
+          "default": 4,
+          "minimum": 1
+        },
+        "time_steps": {
+          "type": "integer",
+          "title": "Time steps",
+          "default": 1,
+          "minimum": 1
+        }
+      },
+      "required": [
+        "frequency_steps",
+        "time_steps"
+      ],
+      "default": {}
+    },
+    "demix": {
+      "title": "Demixing",
+      "type": "object",
+      "additionalProperties": false,
+      "properties": {
+        "frequency_steps": {
+          "type": "integer",
+          "title": "Frequency steps",
+          "description": "Must be a multiple of the averaging frequency steps",
+          "default": 64,
+          "minimum": 1
+        },
+        "time_steps": {
+          "type": "integer",
+          "title": "Time steps",
+          "description": "Must be a multiple of the averaging time steps",
+          "default": 10,
+          "minimum": 1
+        },
+        "ignore_target": {
+          "type": "boolean",
+          "title": "Ignore target",
+          "default": false
+        },
+        "sources": {
+          "title": "Sources",
+          "type": "object",
+          "additionalProperties": false,
+          "properties": {
+            "CasA": {
+              "title": "CasA",
+              "$ref": "#/definitions/demix_strategy"
+            },
+            "CygA": {
+              "title": "CygA",
+              "$ref": "#/definitions/demix_strategy"
+            },
+            "HerA": {
+              "title": "HerA",
+              "$ref": "#/definitions/demix_strategy"
+            },
+            "HydraA": {
+              "title": "HyrdraA",
+              "$ref": "#/definitions/demix_strategy"
+            },
+            "TauA": {
+              "title": "TauA",
+              "$ref": "#/definitions/demix_strategy"
+            },
+            "VirA": {
+              "title": "VirA",
+              "$ref": "#/definitions/demix_strategy"
+            }
+          },
+          "default": {}
+        }
+      },
+      "required": [
+        "frequency_steps",
+        "time_steps",
+        "ignore_target",
+        "sources"
+      ],
+      "options": {
+        "dependencies": {
+          "demix": true
+        }
+      },
+      "default": {}
+    },
+    "storagemanager": {
+      "type": "string",
+      "title": "Storage Manager",
+      "default": "dysco",
+      "enum": [
+        "basic",
+        "dysco"
+      ]
+    }
+  },
+  "required": [
+    "storagemanager"
+  ]
+}
\ No newline at end of file
diff --git a/SAS/TMSS/src/tmss/tmssapp/schemas/task-stations.json b/SAS/TMSS/src/tmss/tmssapp/schemas/task-stations.json
new file mode 100644
index 0000000000000000000000000000000000000000..3e7fc9dbf0d90999a5260fe850c0a672813178bf
--- /dev/null
+++ b/SAS/TMSS/src/tmss/tmssapp/schemas/task-stations.json
@@ -0,0 +1,238 @@
+{
+    "$id": "http://example.com/example.json",
+    "type": "object",
+    "$schema": "http://json-schema.org/draft-06/schema#",
+    "definitions": {
+        "pointing": {
+            "type": "object",
+            "additionalProperties": false,
+            "properties": {
+                "direction_type": {
+                    "type": "string",
+                    "title": "Reference frame",
+                    "description": "",
+                    "default": "J2000",
+                    "enum": [
+                        "J2000",
+                        "SUN",
+                        "MOON",
+                        "MERCURY",
+                        "VENUS",
+                        "MARS",
+                        "JUPITER",
+                        "SATURN",
+                        "URANUS",
+                        "NEPTUNE",
+                        "PLUTO"
+                    ]
+                },
+                "angle1": {
+                    "type": "number",
+                    "title": "Angle 1",
+                    "description": "First angle (f.e. RA)",
+                    "default": 0
+                },
+                "angle2": {
+                    "type": "number",
+                    "title": "Angle 2",
+                    "description": "Second angle (f.e. DEC)",
+                    "default": 0
+                }
+            }
+        }
+    },
+    "additionalProperties": false,
+    "properties": {
+        "stations": {
+            "title": "Station list",
+            "type": "array",
+            "default": [{}],
+            "oneOf": [{
+                    "type": "array",
+                    "title": "Fixed list",
+                    "additionalItems": false,
+                    "additionalProperties": false,
+                    "default": ["CS001"],
+                    "items": {
+                        "type": "string",
+                        "enum": [
+                            "CS001",
+                            "CS002",
+                            "CS003",
+                            "CS004",
+                            "CS005",
+                            "CS006",
+                            "CS007",
+                            "CS011",
+                            "CS013",
+                            "CS017",
+                            "CS021",
+                            "CS024",
+                            "CS026",
+                            "CS028",
+                            "CS030",
+                            "CS031",
+                            "CS032",
+                            "CS101",
+                            "CS103",
+                            "CS201",
+                            "CS301",
+                            "CS302",
+                            "CS401",
+                            "CS501",
+                            "RS104",
+                            "RS106",
+                            "RS205",
+                            "RS208",
+                            "RS210",
+                            "RS305",
+                            "RS306",
+                            "RS307",
+                            "RS310",
+                            "RS406",
+                            "RS407",
+                            "RS409",
+                            "RS410",
+                            "RS503",
+                            "RS508",
+                            "RS509",
+                            "DE601",
+                            "DE602",
+                            "DE603",
+                            "DE604",
+                            "DE605",
+                            "FR606",
+                            "SE607",
+                            "UK608",
+                            "DE609",
+                            "PL610",
+                            "PL611",
+                            "PL612",
+                            "IE613",
+                            "LV614"
+                        ],
+                        "title": "Station",
+                        "description": ""
+                    },
+                    "minItems": 1,
+                    "uniqueItems": true
+                },
+                {
+                    "title": "Dynamic list",
+                    "type": "array",
+                    "additionalItems": false,
+                    "default": [{}],
+                    "items": {
+                        "type": "object",
+                        "title": "Station set",
+                        "headerTemplate": "{{ self.group }}",
+                        "additionalProperties": false,
+                        "default": {},
+                        "properties": {
+                            "group": {
+                                "type": "string",
+                                "title": "Group/station",
+                                "description": "Which (group of) station(s) to select from",
+                                "default": "ALL",
+                                "enum": [
+                                    "ALL",
+                                    "SUPERTERP",
+                                    "CORE",
+                                    "REMOTE",
+                                    "DUTCH",
+                                    "INTERNATIONAL"
+                                ]
+                            },
+                            "min_stations": {
+                                "type": "integer",
+                                "title": "Minimum nr of stations",
+                                "description": "Number of stations to use within group/station",
+                                "default": 1,
+                                "minimum": 0
+                            }
+                        }
+                    }
+                }
+            ]
+        },
+        "antenna_set": {
+            "type": "string",
+            "title": "Antenna set",
+            "description": "Fields & antennas to use",
+            "default": "HBA_DUAL",
+            "enum": [
+                "HBA_DUAL",
+                "HBA_DUAL_INNER",
+                "HBA_JOINED",
+                "HBA_JOINED_INNER",
+                "HBA_ONE",
+                "HBA_ONE_INNER",
+                "HBA_ZERO",
+                "HBA_ZERO_INNER",
+                "LBA_INNER",
+                "LBA_OUTER",
+                "LBA_SPARSE_EVEN",
+                "LBA_SPARSE_ODD",
+                "LBA_ALL"
+            ]
+        },
+        "filter": {
+            "type": "string",
+            "title": "Band-pass filter",
+            "description": "Must match antenna type",
+            "default": "HBA_110_190",
+            "enum": [
+                "LBA_10_70",
+                "LBA_30_70",
+                "LBA_10_90",
+                "LBA_30_90",
+                "HBA_110_190",
+                "HBA_210_250"
+            ]
+        },
+        "analog_pointing": {
+            "title": "Analog pointing",
+            "description": "HBA only",
+            "default": {},
+            "$ref": "#/definitions/pointing"
+        },
+        "beams": {
+            "type": "array",
+            "title": "Beams",
+            "additionalItems": false,
+            "default": [{}],
+            "items": {
+                "title": "Beam",
+                "headerTemplate": "{{ i0 }} - {{ self.name }}",
+                "type": "object",
+                "additionalProperties": false,
+                "default": {},
+                "properties": {
+                    "name": {
+                        "type": "string",
+                        "title": "Name/target",
+                        "description": "Identifier for this beam",
+                        "default": ""
+                    },
+                    "digital_pointing": {
+                        "title": "Digital pointing",
+                        "default": {},
+                        "$ref": "#/definitions/pointing"
+                    },
+                    "subbands": {
+                        "type": "array",
+                        "title": "Subband list",
+                        "additionalItems": false,
+                        "default": [],
+                        "items": {
+                            "type": "integer",
+                            "title": "Subband",
+                            "minimum": 0,
+                            "maximum": 511
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
\ No newline at end of file