diff --git a/src/caoscrawler/scripts/generators.py b/src/caoscrawler/scripts/generators.py
index ebd6b8060787c22954b813ef020e9073e9637c1c..ba8e6e39cc03e9be1923d72ec5c8d699c01fa8f9 100644
--- a/src/caoscrawler/scripts/generators.py
+++ b/src/caoscrawler/scripts/generators.py
@@ -104,17 +104,27 @@ metadata:
 directory: # corresponds to the directory given to the crawler
   type: Directory
   match: .* # we do not care how it is named here
+  records:
+    DirRecord:    # One record for each directory.
   subtree:
     # This is the file
     thisfile:
       type: []{file}
       match: []{match}
+      records:
+        DatFileRecord:    # One record for each matching file
+          role: File
+          path: $thisfile
+          file: $thisfile
       subtree:
         entry:
           type: Dict
           match: .* # Name is irrelevant
           records:
-            MyParent:
+            BaseElement:    # One BaseElement record for each row in the CSV/TSV file
+              DatFileRecord: $DatFileRecord
+            DirRecord:
+              BaseElement: +$BaseElement
           subtree: !macro
 """