diff --git a/src/caoscrawler/cfood-schema.yml b/src/caoscrawler/cfood-schema.yml
index 38dba865d260b1bc5b83ccc33abf62342ce49bd7..60a55aaf895a690d5b1e9aa89ff042616c04adcd 100644
--- a/src/caoscrawler/cfood-schema.yml
+++ b/src/caoscrawler/cfood-schema.yml
@@ -2,6 +2,7 @@ cfood:
   type: object
   properties:
     Converters:
+      description: Defintiion of custom converters
       type: object
       additionalProperties:
         type: object
@@ -13,6 +14,9 @@ cfood:
         required:
           - converter
           - package
+    macros:
+      description: Macro definitions
+      type: array
   additionalProperties:
     $ref:
       "#/$defs/converter"
diff --git a/unittests/test_macros.py b/unittests/test_macros.py
index 85fe56cd2d49581bcf07b1c7af8456ad219b0111..020098676407f1f70932559b1a995af9f9644fe9 100644
--- a/unittests/test_macros.py
+++ b/unittests/test_macros.py
@@ -59,7 +59,7 @@ def _temp_file_load(txt: str):
 
 def test_macros(register_macros, macro_store_reset):
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test
   params:
@@ -85,7 +85,7 @@ testnode:
 
 def test_macro_list_replacment(register_macros, macro_store_reset):
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test
   params:
@@ -112,7 +112,7 @@ testnode:
 
 def test_multi_macros(register_macros, macro_store_reset):
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test_one
   params: {}
@@ -194,6 +194,7 @@ metadata:
       name: test_one
       params: {}
       definition:
+        type: TextElement
         replaced1: ok
     - !defmacro
       name: test_two
@@ -213,6 +214,7 @@ extroot:
 extroot2: !macro  # test top level macro
   test_one:
 extroot3:
+  type: Directory
   subtree:
     SimulationData: !macro
       test_two:
@@ -228,7 +230,7 @@ def test_replace_arbitrary_objects(register_macros, macro_store_reset):
     See: https://gitlab.indiscale.com/caosdb/src/caosdb-crawler/-/issues/24
     """
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test
   params:
@@ -277,6 +279,7 @@ metadata:
       params:
         a: 25
       definition:
+        type: DictElement
         macro_sub_$a:
           b: $a
           another_param: 3
@@ -284,6 +287,7 @@ metadata:
       name: test_macrodef
       params: {}
       definition:
+        type: DictElement
         macro_top: !macro
           one_macro:
           - a: 17
@@ -352,6 +356,7 @@ metadata:
       name: test_one
       params: {}
       definition: !macro
+        type: TextElement
         test_two:
     - !defmacro
       name: test_two
@@ -367,6 +372,7 @@ metadata:
       name: test_four
       params: {}
       definition: !macro
+        type: TextElement
         test_four:
 ---
 extroot: !macro
@@ -403,6 +409,7 @@ metadata:
         macro_name: default_name
         a: 4
       definition:
+        type: DictElement
         $macro_name:
           something:
             a: $a
@@ -555,7 +562,7 @@ extroot: !macro
 
 def test_list_macro_application(register_macros, macro_store_reset):
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test
   params:
@@ -586,7 +593,7 @@ testnode:
 
 def test_variable_in_macro_definition(register_macros, macro_store_reset):
     dat = yaml.load("""
-defs:
+macros:
 - !defmacro
   name: test
   params: