diff --git a/default_plugins.txt b/default_plugins.txt
index c245f89cc986b3cd53ffd3e8168be59da7daf380..14e63ae3302d6fd91d4180f7ae437419bb6b3db9 100644
--- a/default_plugins.txt
+++ b/default_plugins.txt
@@ -1,6 +1,7 @@
 git+https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database.git@f394d21abafeb659729af0c94e5f90949fce01c1
 git+https://github.com/FAIRmat-NFDI/nomad-porous-materials.git@522f4a3208077f534f1c5e886527ee2104283d0b
 git+https://github.com/FAIRmat-NFDI/nomad-aitoolkit.git@b203f8eb28dc4b6771a39d5c5b7ad3d9d8583ac8
+git+https://github.com/FAIRmat-NFDI/nomad-external-eln-integrations@f6bcb5c7b1eaf3c83cf5aafc0e35f95d00a201a9
 nomad-simulations==0.0.1
 pynxtools[convert]==0.7.0
 nomad-schema-plugin-run>=1.0.1
diff --git a/docs/howto/manage/eln.md b/docs/howto/manage/eln.md
index b8a38a5f3c2f80add5a6147bd149953abe3f5ebb..5dae8957f0274d2a2d33b6a4b4136c712b88b2fc 100644
--- a/docs/howto/manage/eln.md
+++ b/docs/howto/manage/eln.md
@@ -43,6 +43,9 @@ guides to create you own customized of ELNs.
 
     This part of the documentation is still work in progress.
 
+The code base is part of the [FAIRmat-NFDI](https://github.com/FAIRmat-NFDI/nomad-external-eln-integrations){:target="_
+blank"} repository.
+
 
 NOMAD offers integration with third-party ELN providers, simplifying the process of connecting
 and interacting with external platforms. Three main external ELN solutions that are integrated into NOMAD
diff --git a/gui/tests/artifacts.js b/gui/tests/artifacts.js
index ee777f5d86022a12efd221d8374ab7f6a27ce174..ff42fc7f7d5a6cf2b29a407aaabfc6996b557954 100644
--- a/gui/tests/artifacts.js
+++ b/gui/tests/artifacts.js
@@ -650,7 +650,7 @@ window.nomadArtifacts = {
       "description": "A list of user curated datasets this entry belongs to.",
       "type": {
         "type_kind": "reference",
-        "type_data": "/packages/19/section_definitions/0"
+        "type_data": "/packages/16/section_definitions/0"
       },
       "shape": [
         "0..*"
@@ -6605,7 +6605,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "PlotlyFigureQuantity",
             "base_sections": [
-              "/packages/30/section_definitions/6"
+              "/packages/28/section_definitions/6"
             ],
             "constraints": [
               "correct_dimensionality",
@@ -6645,7 +6645,7 @@ window.nomadArtifacts = {
             "name": "PlotSection",
             "description": "The PlotSection base section serves as an additional functionality to your sections. This base section is designed to simplify the process of creating various types of\nplots, making it easy to use Plotly Express, Plotly Subplot, and the general Plotly graph objects.\n\nFeatures:\n- Plotly Express: Create simple and quick plots with a high-level, expressive API.\n- Plotly Subplot: Organize multiple plots into subplots for more complex visualizations.\n- General Plotly Graph Objects: Fine-tune your plots by working directly with Plotly's graph objects.\n\nUsage:\n- Inherit from this base section to leverage its plot functionality.\n- Customize your plots using the annotations plotly-express, plotly-subplots, or/and plotly-graph-object.\n\nExample Usage:\n```python\nclass CustomSection(PlotSection, ElnBaseSection, EntryData):\n    m_def = Section()\n    time = Quantity(type=float, shape=['*'], unit='s', a_eln=dict(component='NumberEditQuantity'))\n    substrate_temperature = Quantity(type=float, shape=['*'], unit='K', a_eln=dict(component='NumberEditQuantity'))\n    chamber_pressure = Quantity(type=float, shape=['*'], unit='Pa', a_eln=dict(component='NumberEditQuantity'))\n\n    def normalize(self, archive, logger):\n        super(CustomSection, self).normalize(archive, logger)\n\n        first_line = px.scatter(x=self.time, y=self.substrate_temperature)\n        second_line = px.scatter(x=self.time, y=self.chamber_pressure)\n        figure1 = make_subplots(rows=1, cols=2, shared_yaxes=True)\n        figure1.add_trace(first_line.data[0], row=1, col=1)\n        figure1.add_trace(second_line.data[0], row=1, col=2)\n        figure1.update_layout(height=400, width=716, title_text=\"Creating Subplots in Plotly\")\n        self.figures.append(PlotlyFigure(label='figure 1', figure=figure1.to_plotly_json()))\n\n        figure2 = px.scatter(x=self.substrate_temperature, y=self.chamber_pressure, color=self.chamber_pressure, title=\"Chamber as a function of Temperature\")\n        self.figures.append(PlotlyFigure(label='figure 2', index=1, figure=figure2.to_plotly_json()))\n\n        heatmap_data = [[None, None, None, 12, 13, 14, 15, 16],\n             [None, 1, None, 11, None, None, None, 17],\n             [None, 2, 6, 7, None, None, None, 18],\n             [None, 3, None, 8, None, None, None, 19],\n             [5, 4, 10, 9, None, None, None, 20],\n             [None, None, None, 27, None, None, None, 21],\n             [None, None, None, 26, 25, 24, 23, 22]]\n\n        heatmap = go.Heatmap(z=heatmap_data, showscale=False, connectgaps=True, zsmooth='best')\n        figure3 = go.Figure(data=heatmap)\n        self.figures.append(PlotlyFigure(label='figure 3', index=0, figure=figure3.to_plotly_json()))\n```",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "sub_sections": [
               {
@@ -10058,7 +10058,7 @@ window.nomadArtifacts = {
             "name": "Method",
             "description": "Section containing the various parameters that define the theory and the approximations (convergence, thresholds, etc.) behind the calculation.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -10080,7 +10080,7 @@ window.nomadArtifacts = {
                 "name": "starting_method_ref",
                 "description": "Links the current section method to a section method containing the starting\nparameters.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -10095,7 +10095,7 @@ window.nomadArtifacts = {
                 "name": "core_method_ref",
                 "description": "Links the current section method to a section method containing the core settings.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -10122,7 +10122,7 @@ window.nomadArtifacts = {
                 "name": "methods_ref",
                 "description": "Links the section method to other method sections. For instance, one calculation\nis a perturbation performed using a self-consistent field (SCF) calculation as\nstarting point, or a simulated system is partitioned in regions with different but\nconnected Hamiltonians (e.g., QM/MM, or a region treated via Kohn-Sham DFT\nembedded into a region treated via orbital-free DFT).",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -11148,7 +11148,7 @@ window.nomadArtifacts = {
             "name": "System",
             "description": "Contains parameters describing a system of atomic configuration. These inclue the compound name, atomic positions, lattice vectors, contraints on the atoms, etc.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -11218,7 +11218,7 @@ window.nomadArtifacts = {
                 "name": "sub_system_ref",
                 "description": "Links the current section system to a sub system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -11233,7 +11233,7 @@ window.nomadArtifacts = {
                 "name": "systems_ref",
                 "description": "Links the current section system to other section systems. Such a link is\nnecessary for example between the supercell and the reference unit cell in a phonon\ncalculation. The relationship should be described by kind and the referred section\nsystem is given by value. An external url can also be provided in place of value.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -11299,7 +11299,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "atoms",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/2/section_definitions/1"
               },
@@ -11325,7 +11325,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "prototype",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/2/section_definitions/3",
                 "repeats": true
@@ -11336,7 +11336,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "springer_material",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/2/section_definitions/4",
                 "repeats": true
@@ -11347,7 +11347,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "symmetry",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/2/section_definitions/2",
                 "repeats": true
@@ -11358,7 +11358,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "descriptors",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/2/section_definitions/7",
                 "repeats": false
@@ -11828,7 +11828,7 @@ window.nomadArtifacts = {
                 "name": "total",
                 "description": "Contains the value and information regarding the total energy of the system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/3/section_definitions/4"
               },
@@ -12001,7 +12001,7 @@ window.nomadArtifacts = {
                 "name": "double_counting",
                 "description": "Double counting correction when performing Hubbard model calculations.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/3/section_definitions/4"
               },
@@ -12384,7 +12384,7 @@ window.nomadArtifacts = {
             "name": "BandGapDeprecated",
             "description": "Base class for breaking up circular dependencies between BandGap, Dos, and BandStructure.",
             "base_sections": [
-              "/packages/27/section_definitions/1"
+              "/packages/25/section_definitions/1"
             ],
             "quantities": [
               {
@@ -13086,7 +13086,7 @@ window.nomadArtifacts = {
             "name": "ElectronicStructureProvenance",
             "description": "\n    ",
             "base_sections": [
-              "/packages/27/section_definitions/0"
+              "/packages/25/section_definitions/0"
             ],
             "quantities": [
               {
@@ -13705,7 +13705,7 @@ window.nomadArtifacts = {
             "name": "Spectra",
             "description": "Section containing the spectra properties.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -14236,7 +14236,7 @@ window.nomadArtifacts = {
             "name": "BaseCalculation",
             "description": "Contains computed properties of a configuration as defined by the corresponding section system and with the simulation method defined by section method. The\nreferences to the system and method sections are given by system_ref and method_ref,\nrespectively.\n\nProperties derived from a group of configurations are not included in this section but\ncan be accessed in section workflow.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -14246,7 +14246,7 @@ window.nomadArtifacts = {
                 "name": "system_ref",
                 "description": "Links the calculation to a section system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -14261,7 +14261,7 @@ window.nomadArtifacts = {
                 "name": "method_ref",
                 "description": "Links the calculation to a section method.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -14276,7 +14276,7 @@ window.nomadArtifacts = {
                 "name": "starting_calculation_ref",
                 "description": "Links the current section calculation to the starting calculation.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -14303,7 +14303,7 @@ window.nomadArtifacts = {
                 "name": "calculations_ref",
                 "description": "Links the current section calculation to other section calculations. Such a link\nis necessary for example if the referenced calculation is a self-consistent\ncalculation that serves as a starting point or a calculation is part of a domain\ndecomposed simulation that needs to be connected.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -14528,7 +14528,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "energy",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/3/section_definitions/5"
               },
@@ -14996,7 +14996,7 @@ window.nomadArtifacts = {
             "name": "Run",
             "description": "Every section run represents a single call of a program.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -15042,7 +15042,7 @@ window.nomadArtifacts = {
                 "name": "starting_run_ref",
                 "description": "Links the current section run to a section run containing the calculations from\nwhich the current section starts.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -15069,7 +15069,7 @@ window.nomadArtifacts = {
                 "name": "runs_ref",
                 "description": "Links the the current section to other run sections. Such a link is necessary for\nexample for workflows that may contain a series of runs.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -15161,7 +15161,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflowMethod",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ]
           },
           {
@@ -15170,7 +15170,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflowResults",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -15180,7 +15180,7 @@ window.nomadArtifacts = {
                 "name": "calculation_result_ref",
                 "description": "Reference to calculation result. In the case of serial workflows, this corresponds\nto the final step in the simulation. For the parallel case, it refers to the reference calculation.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -15222,7 +15222,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflow",
             "base_sections": [
-              "/packages/28/section_definitions/3"
+              "/packages/26/section_definitions/3"
             ],
             "sub_sections": [
               {
@@ -15238,7 +15238,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/1"
               }
@@ -15823,7 +15823,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/6"
               }
@@ -16088,7 +16088,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/12"
               }
@@ -16613,7 +16613,7 @@ window.nomadArtifacts = {
             "name": "Property",
             "description": "Generic parent section for all property types.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -17378,7 +17378,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/30"
               }
@@ -17626,7 +17626,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/33"
               }
@@ -18220,7 +18220,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/37"
               }
@@ -18257,7 +18257,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/5"
               }
@@ -18427,7 +18427,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/41"
               }
@@ -18544,7 +18544,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/44"
               }
@@ -18633,7 +18633,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/47"
               }
@@ -18777,7 +18777,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/50"
               }
@@ -18908,7 +18908,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/53"
               }
@@ -19117,7 +19117,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/56"
               }
@@ -19330,7 +19330,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/61"
               }
@@ -19417,7 +19417,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/5/section_definitions/64"
               }
@@ -22728,7 +22728,7 @@ window.nomadArtifacts = {
                 "name": "calculation_result_ref",
                 "description": "Reference to calculation result. In the case of geometry_optimization and\nmolecular dynamics, this corresponds to the final step in the simulation. For the\nrest of the workflow types, it refers to the original system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -22769,7 +22769,7 @@ window.nomadArtifacts = {
                 "name": "run_ref",
                 "description": "Links the section workflow to the section run that contains the calculations.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -22796,7 +22796,7 @@ window.nomadArtifacts = {
                 "name": "workflows_ref",
                 "description": "Links the the current section to other workflow sections. Such a link is necessary\nfor example between an Debye model that uses a the poisson ratio calculated\nfrom an elastic workflow.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -22822,7 +22822,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "single_point",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/6/section_definitions/32",
                 "repeats": false
@@ -22833,7 +22833,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "gw",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/6/section_definitions/31",
                 "repeats": false
@@ -22844,7 +22844,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "geometry_optimization",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/6/section_definitions/9",
                 "repeats": false
@@ -22855,7 +22855,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "phonon",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/6/section_definitions/10",
                 "repeats": false
@@ -23007,7 +23007,7 @@ window.nomadArtifacts = {
             "name": "Downloads",
             "description": "Allows you to upload a very small file that will add very large files to your upload. Imagine there are large file resources in the internet (e.g. on a data sharing service)\nthat you need to add to your upload. This way you do not need to download those large\nfiles first, just to upload them to NOMAD.\n\nWhen this section is processed, it will download files from given URLs, add\nthem to the upload, and trigger processing for given mainfiles.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -23252,7 +23252,7 @@ window.nomadArtifacts = {
               "/packages/8/section_definitions/0"
             ],
             "extending_sections": [
-              "/packages/21/section_definitions/2"
+              "/packages/19/section_definitions/2"
             ],
             "quantities": [
               {
@@ -23456,7 +23456,7 @@ window.nomadArtifacts = {
             "name": "HubbardKanamoriModel",
             "description": "Setup of the local Hubbard model.",
             "extending_sections": [
-              "/packages/21/section_definitions/4"
+              "/packages/19/section_definitions/4"
             ],
             "quantities": [
               {
@@ -25973,7 +25973,7 @@ window.nomadArtifacts = {
               "/packages/8/section_definitions/34"
             ],
             "extending_sections": [
-              "/packages/21/section_definitions/5"
+              "/packages/19/section_definitions/5"
             ],
             "quantities": [
               {
@@ -26547,13 +26547,13 @@ window.nomadArtifacts = {
             "name": "Method",
             "description": "Section containing the various parameters that define the theory and the approximations (convergence, thresholds, etc.) behind the calculation.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "extending_sections": [
-              "/packages/21/section_definitions/1",
-              "/packages/22/section_definitions/0",
-              "/packages/23/section_definitions/0",
-              "/packages/24/section_definitions/0"
+              "/packages/19/section_definitions/1",
+              "/packages/20/section_definitions/0",
+              "/packages/21/section_definitions/0",
+              "/packages/22/section_definitions/0"
             ],
             "quantities": [
               {
@@ -26594,7 +26594,7 @@ window.nomadArtifacts = {
                 "name": "starting_method_ref",
                 "description": "Links the current section method to a section method containing the starting\nparameters.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -26609,7 +26609,7 @@ window.nomadArtifacts = {
                 "name": "core_method_ref",
                 "description": "Links the current section method to a section method containing the core settings.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -26636,7 +26636,7 @@ window.nomadArtifacts = {
                 "name": "methods_ref",
                 "description": "Links the section method to other method sections. For instance, one calculation\nis a perturbation performed using a self-consistent field (SCF) calculation as\nstarting point, or a simulated system is partitioned in regions with different but\nconnected Hamiltonians (e.g., QM/MM, or a region treated via Kohn-Sham DFT\nembedded into a region treated via orbital-free DFT).",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -27716,10 +27716,10 @@ window.nomadArtifacts = {
             "name": "System",
             "description": "Contains parameters describing a system of atomic configuration. These inclue the compound name, atomic positions, lattice vectors, contraints on the atoms, etc.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "extending_sections": [
-              "/packages/21/section_definitions/3"
+              "/packages/19/section_definitions/3"
             ],
             "quantities": [
               {
@@ -27789,7 +27789,7 @@ window.nomadArtifacts = {
                 "name": "sub_system_ref",
                 "description": "Links the current section system to a sub system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -27804,7 +27804,7 @@ window.nomadArtifacts = {
                 "name": "systems_ref",
                 "description": "Links the current section system to other section systems. Such a link is\nnecessary for example between the supercell and the reference unit cell in a phonon\ncalculation. The relationship should be described by kind and the referred section\nsystem is given by value. An external url can also be provided in place of value.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -27870,7 +27870,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "atoms",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/9/section_definitions/1"
               },
@@ -27896,7 +27896,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "prototype",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/9/section_definitions/3",
                 "repeats": true
@@ -27907,7 +27907,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "springer_material",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/9/section_definitions/4",
                 "repeats": true
@@ -27918,7 +27918,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "symmetry",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/9/section_definitions/2",
                 "repeats": true
@@ -27929,7 +27929,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "descriptors",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/9/section_definitions/8",
                 "repeats": false
@@ -28008,7 +28008,7 @@ window.nomadArtifacts = {
             "name": "AtomicValues",
             "description": "Generic section containing information regarding the values of an atomic quantity.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -28414,7 +28414,7 @@ window.nomadArtifacts = {
                 "name": "total",
                 "description": "Contains the value and information regarding the total energy of the system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/10/section_definitions/4"
               },
@@ -28587,7 +28587,7 @@ window.nomadArtifacts = {
                 "name": "double_counting",
                 "description": "Double counting correction when performing Hubbard model calculations.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/10/section_definitions/4"
               },
@@ -28970,7 +28970,7 @@ window.nomadArtifacts = {
             "name": "BandGapDeprecated",
             "description": "Base class for breaking up circular dependencies between BandGap, Dos, and BandStructure.",
             "base_sections": [
-              "/packages/27/section_definitions/1"
+              "/packages/25/section_definitions/1"
             ],
             "quantities": [
               {
@@ -29687,7 +29687,7 @@ window.nomadArtifacts = {
             "name": "ElectronicStructureProvenance",
             "description": "\n    ",
             "base_sections": [
-              "/packages/27/section_definitions/0"
+              "/packages/25/section_definitions/0"
             ],
             "quantities": [
               {
@@ -30306,7 +30306,7 @@ window.nomadArtifacts = {
             "name": "Spectra",
             "description": "Section containing the spectra properties.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -31048,7 +31048,7 @@ window.nomadArtifacts = {
             "name": "BaseCalculation",
             "description": "Contains computed properties of a configuration as defined by the corresponding section system and with the simulation method defined by section method. The\nreferences to the system and method sections are given by system_ref and method_ref,\nrespectively.\n\nProperties derived from a group of configurations are not included in this section but\ncan be accessed in section workflow.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -31058,7 +31058,7 @@ window.nomadArtifacts = {
                 "name": "system_ref",
                 "description": "Links the calculation to a section system.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -31073,7 +31073,7 @@ window.nomadArtifacts = {
                 "name": "method_ref",
                 "description": "Links the calculation to a section method.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -31088,7 +31088,7 @@ window.nomadArtifacts = {
                 "name": "starting_calculation_ref",
                 "description": "Links the current section calculation to the starting calculation.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -31115,7 +31115,7 @@ window.nomadArtifacts = {
                 "name": "calculations_ref",
                 "description": "Links the current section calculation to other section calculations. Such a link\nis necessary for example if the referenced calculation is a self-consistent\ncalculation that serves as a starting point or a calculation is part of a domain\ndecomposed simulation that needs to be connected.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -31340,7 +31340,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "energy",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/10/section_definitions/5"
               },
@@ -31840,10 +31840,10 @@ window.nomadArtifacts = {
             "name": "Run",
             "description": "Every section run represents a single call of a program.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "extending_sections": [
-              "/packages/21/section_definitions/0"
+              "/packages/19/section_definitions/0"
             ],
             "quantities": [
               {
@@ -31889,7 +31889,7 @@ window.nomadArtifacts = {
                 "name": "starting_run_ref",
                 "description": "Links the current section run to a section run containing the calculations from\nwhich the current section starts.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -31916,7 +31916,7 @@ window.nomadArtifacts = {
                 "name": "runs_ref",
                 "description": "Links the the current section to other run sections. Such a link is necessary for\nexample for workflows that may contain a series of runs.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -32008,7 +32008,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflowMethod",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ]
           },
           {
@@ -32017,7 +32017,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflowResults",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -32027,7 +32027,7 @@ window.nomadArtifacts = {
                 "name": "calculation_result_ref",
                 "description": "Reference to calculation result. In the case of serial workflows, this corresponds\nto the final step in the simulation. For the parallel case, it refers to the reference calculation.",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "reference",
@@ -32069,7 +32069,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "SimulationWorkflow",
             "base_sections": [
-              "/packages/28/section_definitions/3"
+              "/packages/26/section_definitions/3"
             ],
             "sub_sections": [
               {
@@ -32085,7 +32085,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
                 "sub_section": "/packages/12/section_definitions/1"
               }
@@ -32862,7 +32862,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "species",
-                "sub_section": "/packages/29/section_definitions/0",
+                "sub_section": "/packages/27/section_definitions/0",
                 "repeats": true
               },
               {
@@ -36670,7 +36670,7 @@ window.nomadArtifacts = {
             "name": "MDProvenance",
             "description": "\n        Contains provenance information for properties derived from molecular\n        dynamics simulations.\n        ",
             "base_sections": [
-              "/packages/27/section_definitions/0"
+              "/packages/25/section_definitions/0"
             ],
             "sub_sections": [
               {
@@ -36690,7 +36690,7 @@ window.nomadArtifacts = {
             "name": "MDPropertySection",
             "description": "\n        Base class for referring to molecular dynamics properties.\n        ",
             "base_sections": [
-              "/packages/27/section_definitions/1"
+              "/packages/25/section_definitions/1"
             ],
             "sub_sections": [
               {
@@ -36799,7 +36799,7 @@ window.nomadArtifacts = {
                   ]
                 },
                 "name": "band_gap",
-                "sub_section": "/packages/30/section_definitions/9",
+                "sub_section": "/packages/28/section_definitions/9",
                 "repeats": true
               }
             ]
@@ -36925,7 +36925,7 @@ window.nomadArtifacts = {
                   ]
                 },
                 "name": "band_gap",
-                "sub_section": "/packages/30/section_definitions/9",
+                "sub_section": "/packages/28/section_definitions/9",
                 "repeats": true
               }
             ]
@@ -37120,7 +37120,7 @@ window.nomadArtifacts = {
                   ]
                 },
                 "name": "band_gap",
-                "sub_section": "/packages/30/section_definitions/9",
+                "sub_section": "/packages/28/section_definitions/9",
                 "repeats": true
               }
             ]
@@ -37306,7 +37306,7 @@ window.nomadArtifacts = {
                 "description": "Specific heat capacity values at constant volume.",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/43/section_definitions/2/quantities/5"
+                  "type_data": "/packages/41/section_definitions/2/quantities/5"
                 },
                 "shape": []
               },
@@ -37318,7 +37318,7 @@ window.nomadArtifacts = {
                 "description": "The temperatures at which heat capacities are calculated.",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/43/section_definitions/2/quantities/1"
+                  "type_data": "/packages/41/section_definitions/2/quantities/1"
                 }
               }
             ]
@@ -37338,7 +37338,7 @@ window.nomadArtifacts = {
                 "description": "The Helmholtz free energies per atom at constant volume.",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/43/section_definitions/2/quantities/7"
+                  "type_data": "/packages/41/section_definitions/2/quantities/7"
                 },
                 "shape": []
               },
@@ -37350,7 +37350,7 @@ window.nomadArtifacts = {
                 "description": "The temperatures at which Helmholtz free energies are calculated.",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/43/section_definitions/2/quantities/1"
+                  "type_data": "/packages/41/section_definitions/2/quantities/1"
                 }
               }
             ]
@@ -37437,7 +37437,7 @@ window.nomadArtifacts = {
                 "name": "volumes",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/34/section_definitions/2/quantities/1"
+                  "type_data": "/packages/32/section_definitions/2/quantities/1"
                 }
               },
               {
@@ -37447,7 +37447,7 @@ window.nomadArtifacts = {
                 "name": "energies_raw",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/34/section_definitions/2/quantities/2"
+                  "type_data": "/packages/32/section_definitions/2/quantities/2"
                 }
               },
               {
@@ -37457,7 +37457,7 @@ window.nomadArtifacts = {
                 "name": "energies_fit",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/34/section_definitions/1/quantities/1"
+                  "type_data": "/packages/32/section_definitions/1/quantities/1"
                 }
               }
             ]
@@ -37605,7 +37605,7 @@ window.nomadArtifacts = {
                 "description": "List of energy_total values gathered from the single configuration\ncalculations that are a part of the optimization trajectory.",
                 "type": {
                   "type_kind": "quantity_reference",
-                  "type_data": "/packages/35/section_definitions/1/quantities/1"
+                  "type_data": "/packages/33/section_definitions/1/quantities/1"
                 }
               },
               {
@@ -37812,7 +37812,7 @@ window.nomadArtifacts = {
                   ]
                 },
                 "name": "band_gap",
-                "sub_section": "/packages/30/section_definitions/10",
+                "sub_section": "/packages/28/section_definitions/10",
                 "repeats": true
               },
               {
@@ -40071,7 +40071,7 @@ window.nomadArtifacts = {
             "name": "SpectraProvenance",
             "description": "\n        Contains provenance information (mainly the methodology section) for spectra properties\n        derived from an experiment or a calculation.\n        ",
             "base_sections": [
-              "/packages/27/section_definitions/0"
+              "/packages/25/section_definitions/0"
             ],
             "sub_sections": [
               {
@@ -40561,58 +40561,31 @@ window.nomadArtifacts = {
         "m_def": "nomad.metainfo.metainfo.Package",
         "m_parent_index": 14,
         "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.metainfo.eln",
+        "name": "nomad.datamodel.metainfo.measurements",
         "section_definitions": [
           {
             "m_def": "nomad.metainfo.metainfo.Section",
             "m_parent_index": 0,
             "m_parent_sub_section": "section_definitions",
-            "name": "User",
+            "name": "Sample",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "AuthorEditQuantity"
-                    }
-                  ]
-                },
-                "name": "user",
-                "description": "The corresponding user for the activity.",
+                "name": "sample_id",
+                "description": "Identification number or signatures of the sample used.",
                 "type": {
-                  "type_kind": "Author",
-                  "type_data": "Author"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "section_definitions",
-            "name": "ElnBaseSection",
-            "description": "A generic abstract base section for ELNs that provides a few commonly used properties. If you inherit from this section, but do not need some quantities, list those\nquantities in the `eln.hide` annotation of your inheriting section definition.\n\nBesides predefining some quantities, these base sections will add some metadata\nto NOMAD's search. A particular example are `tags`, if you define a string\nor enum quantity in your sections named `tags`, its values will be searchable.",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "short name"
-                    }
-                  ]
-                },
                 "name": "name",
-                "description": "A short human readable and descriptive name.",
+                "description": "A human readable free text name for the sample.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -40620,36 +40593,21 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "DateTimeEditQuantity"
-                    }
-                  ]
-                },
-                "name": "datetime",
-                "description": "The date and time associated with this section.",
+                "name": "description",
+                "description": "A description of the sample.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "ID"
-                    }
-                  ]
-                },
-                "name": "lab_id",
-                "description": "An ID string that is unique at least for the lab that produced this\ndata.",
+                "name": "sample_state",
+                "description": "The physical state of the sample.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -40657,114 +40615,43 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "RichTextEditQuantity"
-                    }
-                  ]
+                "name": "sample_temperature",
+                "description": "The temperature of the sample during the measurement.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "name": "description",
-                "description": "Any information that cannot be captured in the other fields.",
+                "unit": "kelvin"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 5,
+                "m_parent_sub_section": "quantities",
+                "name": "sample_microstructure",
+                "description": "The sample microstructure.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ]
-            },
-            "name": "BasicEln",
-            "label": "Basic ELN",
-            "description": "The most basic ELN to instantiate.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/14/section_definitions/1",
-              "/packages/25/section_definitions/1"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "sample_constituents",
+                "description": "The constituents.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "process_identifiers": {}
                 }
-              ]
-            },
-            "name": "ELNProcess",
-            "label": "Material Processing ELN",
-            "description": "A basic electronic lab notebook for a material processing activity.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/20",
-              "/packages/25/section_definitions/1"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 7,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ],
-                  "template": [
-                    {
-                      "process_identifiers": {}
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "elements",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -40772,88 +40659,53 @@ window.nomadArtifacts = {
                 "shape": [
                   "*"
                 ]
-              }
-            ],
-            "sub_sections": [
+              },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "process_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 8,
+                "m_parent_sub_section": "quantities",
+                "name": "chemical_formula",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 4,
+            "m_parent_index": 1,
             "m_parent_sub_section": "section_definitions",
-            "name": "BasicMeasurementResult",
-            "label": "Measurement Result",
-            "description": "A basic section for describing the result of a measurement.",
-            "base_sections": [
-              "/packages/26/section_definitions/25"
-            ],
+            "name": "Experiment",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "RichTextEditQuantity"
-                    }
-                  ]
-                },
-                "name": "result",
+                "name": "name",
+                "description": "A human readable free text name for the experiment.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 5,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "measurement_identifiers": {}
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "description",
+                "description": "A description of the experiment.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
-              ]
-            },
-            "name": "ELNMeasurement",
-            "label": "Measurement ELN",
-            "description": "A basic electronic lab notebook for a measurement activity.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/26",
-              "/packages/25/section_definitions/1"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "steps",
+                "description": "Human readable experiment steps.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -40861,6 +40713,17 @@ window.nomadArtifacts = {
                 "shape": [
                   "*"
                 ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "sample_ref",
+                "description": "Reference to the used sample.",
+                "type": {
+                  "type_kind": "reference",
+                  "type_data": "/packages/14/section_definitions/0"
+                }
               }
             ],
             "sub_sections": [
@@ -40868,43 +40731,55 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "measurement_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "sample",
+                "description": "The used sample.",
+                "sub_section": "/packages/14/section_definitions/0"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
-                "name": "results",
-                "description": "The result of the measurement.",
-                "sub_section": "/packages/14/section_definitions/4",
+                "name": "measurement",
+                "description": "Measurements performed in this experiment.",
+                "sub_section": "/packages/14/section_definitions/3",
                 "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 6,
+            "m_parent_index": 2,
             "m_parent_sub_section": "section_definitions",
-            "name": "BasicAnalysisResult",
-            "label": "Analysis Result",
-            "description": "A basic section for describing the result of an analysis.",
-            "base_sections": [
-              "/packages/26/section_definitions/22"
-            ],
+            "name": "Instrument",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "RichTextEditQuantity"
-                    }
-                  ]
-                },
-                "name": "result",
+                "name": "instrument_id",
+                "description": "Identification number or signatures of the instrument used.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "name",
+                "description": "A human readable free text name for the instrument.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "description",
+                "description": "A description of the instrument.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -40914,51 +40789,92 @@ window.nomadArtifacts = {
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 7,
+            "m_parent_index": 3,
             "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "analysis_identifiers": {}
-                }
-              ]
-            },
-            "name": "ELNAnalysis",
-            "label": "Analysis ELN",
-            "description": "A basic electronic lab notebook for an analysis activity.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/23",
-              "/packages/25/section_definitions/1"
-            ],
+            "name": "Measurement",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "measurement_id",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "name",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "description",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "method_name",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 4,
+                "m_parent_sub_section": "quantities",
+                "name": "method_abbreviation",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 5,
+                "m_parent_sub_section": "quantities",
+                "name": "start_time",
+                "description": "The datetime of the beginning of the measurement.",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 6,
+                "m_parent_sub_section": "quantities",
+                "name": "end_time",
+                "description": "The datetime of the measurement end.",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 7,
+                "m_parent_sub_section": "quantities",
+                "name": "facility",
+                "description": "Description of the facility (e.g. in full or an acronym) where\nthe measurement was conducted.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               }
             ],
             "sub_sections": [
@@ -40966,67 +40882,131 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "analysis_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "sample",
+                "sub_section": "/packages/14/section_definitions/0",
+                "repeats": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
-                "name": "outputs",
-                "description": "The input data of the analysis.",
-                "sub_section": "/packages/14/section_definitions/6",
+                "name": "instrument",
+                "sub_section": "/packages/14/section_definitions/2",
                 "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 8,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "sample_identifiers": {}
-                }
-              ]
-            },
-            "name": "ELNSample",
-            "label": "Generic Sample ELN",
-            "description": "A basic electronic lab notebook for a generic sample.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/17",
-              "/packages/25/section_definitions/1"
-            ],
+            "m_parent_index": 0,
+            "m_parent_sub_section": "inner_section_definitions",
+            "name": "SpectrumChannel",
+            "description": "Provides the metadata for a generic additional spectrum channel. Do not use it for energy or count; they have their predefined channels.",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "channel_id",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "*"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "label",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "unit",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 5,
+            "m_parent_sub_section": "section_definitions",
+            "name": "Spectrum",
+            "description": "Generic spectrum data with energies and counts. May include additional channels.",
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "n_values",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "int"
+                },
+                "virtual": true
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "count",
+                "description": "The count at each energy value, dimensionless",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_values"
+                ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "energy",
+                "description": "The energy range of the spectrum",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_values"
+                ],
+                "unit": "joule"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "additional_channel_data",
+                "description": "Data from additional channels. The channels are described in `additional channels`.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_channels",
+                  "n_values"
                 ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 4,
+                "m_parent_sub_section": "quantities",
+                "name": "n_additional_channels",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "int"
+                },
+                "virtual": true
               }
             ],
             "sub_sections": [
@@ -41034,54 +41014,65 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "sample_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "additional_channels",
+                "description": "Metadata for additional channels. The order is the same as the channel data\nappears in `additional_channel_data`.",
+                "sub_section": "/packages/14/section_definitions/5/inner_section_definitions/0",
+                "repeats": true
+              }
+            ],
+            "inner_section_definitions": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Section",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "inner_section_definitions",
+                "name": "SpectrumChannel",
+                "description": "Provides the metadata for a generic additional spectrum channel. Do not use it for energy or count; they have their predefined channels.",
+                "quantities": [
+                  {
+                    "m_def": "nomad.metainfo.metainfo.Quantity",
+                    "m_parent_index": 0,
+                    "m_parent_sub_section": "quantities",
+                    "name": "channel_id",
+                    "type": {
+                      "type_kind": "python",
+                      "type_data": "str"
+                    }
+                  },
+                  {
+                    "m_def": "nomad.metainfo.metainfo.Quantity",
+                    "m_parent_index": 1,
+                    "m_parent_sub_section": "quantities",
+                    "name": "label",
+                    "type": {
+                      "type_kind": "python",
+                      "type_data": "str"
+                    }
+                  },
+                  {
+                    "m_def": "nomad.metainfo.metainfo.Quantity",
+                    "m_parent_index": 2,
+                    "m_parent_sub_section": "quantities",
+                    "name": "unit",
+                    "type": {
+                      "type_kind": "python",
+                      "type_data": "str"
+                    }
+                  }
+                ]
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 9,
+            "m_parent_index": 6,
             "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "substance_identifiers": {},
-                  "substance": {
-                    "m_def": "nomad.datamodel.metainfo.basesections.PubChemPureSubstanceSection"
-                  }
-                }
-              ]
-            },
-            "name": "ELNSubstance",
-            "label": "Substance ELN",
-            "description": "A basic electronic lab notebook for a generic sample.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/27",
-              "/packages/25/section_definitions/1"
-            ],
+            "name": "EELSMeasurement",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "edges",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41089,6 +41080,17 @@ window.nomadArtifacts = {
                 "shape": [
                   "*"
                 ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "publish_time",
+                "description": "The datetime that this was published on EELS DB.",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
               }
             ],
             "sub_sections": [
@@ -41096,58 +41098,83 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "substance_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "spectrum",
+                "sub_section": "/packages/14/section_definitions/5"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "authors",
+                "more": {
+                  "repreats": true
+                },
+                "sub_section": "/packages/23/section_definitions/2"
               }
             ]
-          },
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 15,
+        "m_parent_sub_section": "packages",
+        "name": "nomad.datamodel.metainfo.tabulartree",
+        "section_definitions": [
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 10,
+            "m_parent_index": 0,
             "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
+            "name": "TabularTreeNodeInfo",
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "value",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Any"
                 }
-              ],
-              "template": [
-                {
-                  "instrument_identifiers": {}
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "description",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
-              ]
-            },
-            "name": "ELNInstrument",
-            "label": "Instrument ELN",
-            "description": "A basic electronic lab notebook for a generic instrument.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/11",
-              "/packages/25/section_definitions/1"
-            ],
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "unit",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 1,
+            "m_parent_sub_section": "section_definitions",
+            "name": "TabularTreeLevel3",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "name",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 },
-                "shape": [
-                  "*"
-                ]
+                "default": "<node name?>"
               }
             ],
             "sub_sections": [
@@ -41155,58 +41182,27 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "instrument_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "info",
+                "sub_section": "/packages/15/section_definitions/0"
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 11,
+            "m_parent_index": 2,
             "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "collection_identifiers": {}
-                }
-              ]
-            },
-            "name": "ELNCollection",
-            "label": "Collection ELN",
-            "description": "A basic electronic lab notebook for a collection of entities.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/8",
-              "/packages/25/section_definitions/1"
-            ],
+            "name": "TabularTreeLevel2",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "name",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 },
-                "shape": [
-                  "*"
-                ]
+                "default": "<node name?>"
               }
             ],
             "sub_sections": [
@@ -41214,58 +41210,35 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "collection_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "info",
+                "sub_section": "/packages/15/section_definitions/0"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "nodes",
+                "sub_section": "/packages/15/section_definitions/1",
+                "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 12,
+            "m_parent_index": 3,
             "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "template": [
-                {
-                  "experiment_identifiers": {}
-                }
-              ]
-            },
-            "name": "ELNExperiment",
-            "label": "Experiment ELN",
-            "description": "A basic electronic lab notebook for a collection of activities.",
-            "categories": [
-              "/packages/25/category_definitions/2"
-            ],
-            "base_sections": [
-              "/packages/26/section_definitions/7",
-              "/packages/25/section_definitions/1"
-            ],
+            "name": "TabularTreeLevel1",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "tags",
-                "description": "Add a tag that can be used for search.",
+                "name": "name",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 },
-                "shape": [
-                  "*"
-                ]
+                "default": "<node name?>"
               }
             ],
             "sub_sections": [
@@ -41273,34 +41246,93 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "experiment_identifiers",
-                "sub_section": "/packages/26/section_definitions/32"
+                "name": "info",
+                "sub_section": "/packages/15/section_definitions/0"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "nodes",
+                "sub_section": "/packages/15/section_definitions/2",
+                "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 13,
+            "m_parent_index": 4,
             "m_parent_sub_section": "section_definitions",
-            "name": "SampleID",
-            "description": "A base section that can be used for sample IDs. If the `sample_owner`, `sample_short_name`, `institute`, and `creation_datetime`\nquantities are provided, the sample_id will be automatically created as a combination\nof these four quantities.",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
+            "name": "TabularTree",
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "name",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                },
+                "default": "<node name?>"
+              }
             ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "info",
+                "sub_section": "/packages/15/section_definitions/0"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "nodes",
+                "sub_section": "/packages/15/section_definitions/3",
+                "repeats": true
+              }
+            ]
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 16,
+        "m_parent_sub_section": "packages",
+        "name": "nomad.datamodel.datamodel",
+        "description": "All generic entry metadata and related classes.",
+        "section_definitions": [
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 0,
+            "m_parent_sub_section": "section_definitions",
+            "m_annotations": {
+              "mongo": [
+                "MongoDocument"
+              ],
+              "pydantic": [
+                "PydanticModel"
+              ]
+            },
+            "name": "Dataset",
+            "description": "A Dataset is attached to one or many entries to form a set of data.",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.dataset_id"
                   ]
                 },
-                "name": "institute",
-                "description": "Alias/short name of the home institute of the owner, i.e. *HZB*.",
+                "name": "dataset_id",
+                "description": "The unique identifier for this dataset as a string. It should be\na randomly generated UUID, similar to other nomad ids.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41311,36 +41343,35 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.dataset_name",
+                    "datasets.dataset_name__suggestion"
                   ]
                 },
-                "name": "sample_owner",
-                "description": "Name or alias of the process operator, e.g. jmp",
+                "name": "dataset_name",
+                "description": "The human-readable name of the dataset as string. The dataset name must be\nunique for the user.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": []
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "DateTimeEditQuantity"
-                    }
+                  "mongo": [
+                    "Mongo"
                   ]
                 },
-                "name": "creation_datetime",
-                "description": "Creation date of the sample.",
+                "name": "user_id",
+                "description": "The unique user_id of the owner and creator of this dataset. The owner\nmust not change after creation.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               },
               {
@@ -41348,14 +41379,15 @@ window.nomadArtifacts = {
                 "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.doi"
                   ]
                 },
-                "name": "sample_short_name",
-                "description": "A short name of the sample (the identifier scribed on the smaple,\nor in the sample container), e.g. 4001-8, YAG-2-34.\nThis is to be managed and decided internally by the labs,\nalthough we recomend to avoid the following characters on it: \"_\", \"/\", \"\" and \".\"",
+                "name": "doi",
+                "description": "The optional Document Object Identifier (DOI) associated with this dataset.\nNomad can register DOIs that link back to the respective representation of\nthe dataset in the nomad UI. This quantity holds the string representation of\nthis DOI. There is only one per dataset. The DOI is just the DOI name, not its\nfull URL, e.g. \"10.17172/nomad/2019.10.29-1\".",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41366,76 +41398,129 @@ window.nomadArtifacts = {
                 "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "mongo": [
+                    "Mongo"
                   ]
                 },
-                "name": "sample_id",
-                "description": "Full sample id. Ideally a human readable sample id convention,\nwhich is simple, understandable and still having chances of becoming unique.\nIf the `sample_owner`, `sample_short_name`, `\u00ecnstitute`, and `creation_datetime`\nare provided, this will be formed automatically by joining these components by an underscore (_).\nSpaces in any of the individual components will be replaced with hyphens (-).\nAn example would be hzb_oah_20200602_4001-08",
+                "name": "pid",
+                "description": "The original NOMAD CoE Repository dataset PID. Old DOIs still reference\ndatasets based on this id. Is not used for new datasets.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 14,
-            "m_parent_sub_section": "section_definitions",
-            "name": "CASExperimentalProperty",
-            "description": "A section for experimental properties retrieved from the CAS API.",
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
-                "name": "name",
-                "description": "CAS experimental property name.",
+                "m_annotations": {
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.dataset_create_time"
+                  ]
+                },
+                "name": "dataset_create_time",
+                "description": "The date when the dataset was first created.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
-                "name": "property",
-                "description": "CAS experimental property.",
+                "m_annotations": {
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.dataset_modified_time"
+                  ]
+                },
+                "name": "dataset_modified_time",
+                "description": "The date when the dataset was last modified. An owned dataset\ncan only be extended after a DOI was assigned. A foreign dataset cannot be changed\nonce a DOI was assigned.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 7,
                 "m_parent_sub_section": "quantities",
-                "name": "sourceNumber",
-                "description": "CAS experimental property source.",
+                "m_annotations": {
+                  "mongo": [
+                    "Mongo"
+                  ],
+                  "elasticsearch": [
+                    "datasets.dataset_type"
+                  ]
+                },
+                "name": "dataset_type",
+                "description": "The type determined if a dataset is owned, i.e. was created by\nthe authors of the contained entries; or if a dataset is foreign,\ni.e. it was created by someone not necessarily related to the entries.",
+                "type": {
+                  "type_kind": "enum",
+                  "type_data": [
+                    "foreign",
+                    "owned"
+                  ]
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 8,
+                "m_parent_sub_section": "quantities",
+                "m_annotations": {
+                  "mongo": [
+                    "Mongo"
+                  ]
+                },
+                "name": "query",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.JSON"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 9,
+                "m_parent_sub_section": "quantities",
+                "m_annotations": {
+                  "mongo": [
+                    "Mongo"
+                  ]
+                },
+                "name": "entries",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 15,
+            "m_parent_index": 1,
             "m_parent_sub_section": "section_definitions",
-            "name": "CASPropertyCitation",
-            "description": "A section for citations of the experimental properties retrieved from the CAS API.",
+            "name": "CompatibleSectionDef",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "docUri",
-                "description": "CAS property citation document uri.",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "section_defs.definition_qualified_name"
+                  ]
+                },
+                "name": "definition_qualified_name",
+                "description": "The qualified name of the compatible section.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41445,52 +41530,54 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "sourceNumber",
-                "more": {
-                  "decription": "CAS property citation source number."
+                "m_annotations": {
+                  "elasticsearch": [
+                    "section_defs.definition_id"
+                  ]
                 },
+                "name": "definition_id",
+                "description": "The definition id of the compatible section.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "int"
+                  "type_data": "str"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "source",
-                "description": "CAS property citation source.",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "section_defs.used_directly"
+                  ]
+                },
+                "name": "used_directly",
+                "description": "If the compatible section is directly used as base section.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "bool"
                 }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 16,
+            "m_parent_index": 2,
             "m_parent_sub_section": "section_definitions",
-            "name": "Substance",
-            "description": "A base section for any substance defined in the ELN.",
-            "base_sections": [
-              "/packages/26/section_definitions/10"
-            ],
+            "name": "EntryArchiveReference",
+            "label": "ArchiveReference",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "substance name"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_reference"
                   ]
                 },
-                "name": "name",
-                "description": "The name of the substance entry.",
+                "name": "target_reference",
+                "description": "The full url like reference of the the target.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41501,15 +41588,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "substance ID"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_entry_id"
                   ]
                 },
-                "name": "lab_id",
-                "description": "A human human readable substance ID that is at least unique for the lab.",
+                "name": "target_entry_id",
+                "description": "The id of the entry containing the target.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41520,15 +41604,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "CAS uri"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_mainfile"
                   ]
                 },
-                "name": "cas_uri",
-                "description": "CAS uri",
+                "name": "target_mainfile",
+                "description": "The mainfile of the entry containing the target.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41539,15 +41620,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "CAS number"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_upload_id"
                   ]
                 },
-                "name": "cas_number",
-                "description": "CAS number.",
+                "name": "target_upload_id",
+                "description": "The id of the upload containing the target.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41558,15 +41636,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity",
-                      "label": "CAS name"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_name"
                   ]
                 },
-                "name": "cas_name",
-                "description": "CAS name.",
+                "name": "target_name",
+                "description": "The name of the target quantity/section.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41577,19 +41652,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "FileEditQuantity"
-                    }
-                  ],
-                  "browser": [
-                    {
-                      "adaptor": "RawFileAdaptor"
-                    }
+                  "elasticsearch": [
+                    "entry_references.target_path"
                   ]
                 },
-                "name": "image",
-                "description": "CAS image.",
+                "name": "target_path",
+                "description": "The path of the target quantity/section in its archive.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41600,14 +41668,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "entry_references.source_name"
                   ]
                 },
-                "name": "inchi",
-                "description": "CAS inchi.",
+                "name": "source_name",
+                "description": "The name of the source (self) quantity/section in its archive.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41618,14 +41684,12 @@ window.nomadArtifacts = {
                 "m_parent_index": 7,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "entry_references.source_path"
                   ]
                 },
-                "name": "inchi_key",
-                "description": "CAS inchi key.",
+                "name": "source_path",
+                "description": "The path of the source (self) quantity/section in its archive.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41636,32 +41700,36 @@ window.nomadArtifacts = {
                 "m_parent_index": 8,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "entry_references.source_quantity"
                   ]
                 },
-                "name": "smile",
-                "description": "CAS smile.",
+                "name": "source_quantity",
+                "description": "A reference to the quantity definition that defines the reference",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              },
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 3,
+            "m_parent_sub_section": "section_definitions",
+            "name": "SearchableQuantity",
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.id"
                   ]
                 },
-                "name": "canonical_smile",
-                "description": "CAS canonical smile.",
+                "name": "id",
+                "description": "The full identifier for this quantity that contains the path in the schema +\nschema name.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41669,17 +41737,15 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 10,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.definition"
                   ]
                 },
-                "name": "molecular_formula",
-                "description": "CAS molecular formula.",
+                "name": "definition",
+                "description": "A reference to the quantity definition.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -41687,404 +41753,258 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 11,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.path_archive"
                   ]
                 },
-                "name": "molecular_mass",
-                "description": "CAS molecular mass.",
+                "name": "path_archive",
+                "description": "Path of the value within the archive.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "unit": "dalton"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 12,
+                "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
-                "name": "cas_synonyms",
-                "description": "CAS synonyms.",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "search_quantities.bool_value"
+                  ]
+                },
+                "name": "bool_value",
+                "description": "The value mapped as an ES boolean field.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
+                  "type_data": "bool"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 13,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "RichTextEditQuantity",
-                      "label": "detailed substance description"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.str_value",
+                    "search_quantities.str_value.keyword"
                   ]
                 },
-                "name": "description",
-                "description": "A field for adding additional information about the substance that is not captured\nby the other quantities and subsections.",
+                "name": "str_value",
+                "description": "The value mapped as an ES text and keyword field.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "cas_experimental_properties",
-                "sub_section": "/packages/14/section_definitions/14",
-                "repeats": true
               },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "cas_property_citations",
-                "sub_section": "/packages/14/section_definitions/15",
-                "repeats": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 17,
-            "m_parent_sub_section": "section_definitions",
-            "name": "ElnWithFormulaBaseSection",
-            "description": "A generic abstract base section for ELNs that provides a few commonly used for items with a chemical formula, e.g. chemicals or samples.",
-            "base_sections": [
-              "/packages/14/section_definitions/1"
-            ],
-            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.int_value"
                   ]
                 },
-                "name": "chemical_formula",
-                "description": "The chemical formula. This will be used directly and indirectly in the search. The formula will be used itself as well as the extracted chemical elements.",
+                "name": "int_value",
+                "description": "The value mapped as an ES long number field.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "int"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 18,
-            "m_parent_sub_section": "section_definitions",
-            "name": "Chemical",
-            "description": "A ELN base section that can be used for chemicals.",
-            "base_sections": [
-              "/packages/14/section_definitions/17"
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 19,
-            "m_parent_sub_section": "section_definitions",
-            "name": "Sample",
-            "description": "A ELN base section that can be used for samples.",
-            "base_sections": [
-              "/packages/14/section_definitions/17"
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 20,
-            "m_parent_sub_section": "section_definitions",
-            "name": "ElnWithStructureFile",
-            "description": "A base section for for parsing crystal structure files, e.g. `.cif`, and populating the Material section in Results.",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "FileEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "search_quantities.float_value"
                   ]
                 },
-                "name": "structure_file",
-                "description": "The structure file.",
+                "name": "float_value",
+                "description": "The value mapped as an ES double number field.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "float"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 7,
+                "m_parent_sub_section": "quantities",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "search_quantities.datetime_value"
+                  ]
+                },
+                "name": "datetime_value",
+                "description": "The value mapped as an ES date field.",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
                 }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 21,
+            "m_parent_index": 4,
             "m_parent_sub_section": "section_definitions",
-            "name": "SolarCellDefinition",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
+            "name": "RFC3161Timestamp",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "EnumEditQuantity",
-                      "props": {
-                        "suggestions": []
-                      }
-                    }
-                  ]
-                },
-                "name": "stack_sequence",
-                "description": "The stack sequence describing the cell. Use the following formatting guidelines\n- Start with the substrate to the left and list the materials in each layer of the device\n- If two materials, e.g. A and B, are mixed in one layer, list the materials in alphabetic order and separate them with semicolons, as in (A; B)\n- The absorber layer in other databases is commonly stated with a generaic name as \u201cPerovskite\u201d, regardless of composition, mixtures, dimensionality etc.\n    There are other fields to describe in depth the absorber layer.",
+                "name": "token_seed",
+                "description": "The entry hash used to get timestamp token.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
-                  ]
-                },
-                "name": "solar_cell_area",
-                "description": "The total cell area in cm^2.\nThe total area is defined as the area that would provide photovoltaic performance.",
+                "name": "token",
+                "description": "The token returned by RFC3161 server.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "centimeter ** 2"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Bytes"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "EnumEditQuantity",
-                      "props": {
-                        "suggestions": [
-                          "Unknown",
-                          "Pn-Heterojunction",
-                          "Front contacted",
-                          "Back contacted",
-                          "pin",
-                          "nip",
-                          "Schottky"
-                        ]
-                      }
-                    }
-                  ]
-                },
-                "name": "architecture",
-                "description": "The cell architecture with respect to the direction of current flow and\nthe order in which layers are deposited.\nThe two most common are nip (also referred to as normal) and pin (also referred to as inverted)\nbut there are also a few others, e.g. Back contacted.\n- *nip* architecture means that the electrons are collected at the substrate side.\nThe typical example is in perovskite solar cells when a TiO2 electron selective contact is deposited\nbetween the perovskite and the substrate (e.g. SLG | FTO | TiO2-c | Perovskite | \u2026)\n- *pin* architecture means that it instead is the holes that are collected at the substrate side. The typical example is when a PEDOT:PSS hole selective contact is deposited between the perovskite and the substrate (e.g. SLG | FTO | PEDOT:PSS |Perovskite | \u2026)",
+                "name": "tsa_server",
+                "description": "The address of RFC3161 server.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": []
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "timestamp",
+                "description": "The RFC3161 timestamp.",
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 22,
+            "m_parent_index": 5,
             "m_parent_sub_section": "section_definitions",
-            "name": "SolarCellLayer",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
+            "name": "EntryMetadata",
+            "label": "Metadata",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "EnumEditQuantity",
-                      "props": {
-                        "suggestions": [
-                          "Substrate",
-                          "Absorber",
-                          "Hole Transport Layer",
-                          "Electron Transport Layer",
-                          "Contact",
-                          "Buffer",
-                          "p-type contact",
-                          "n-type contact",
-                          "other"
-                        ]
-                      }
-                    }
+                  "elasticsearch": [
+                    "upload_id"
                   ]
                 },
-                "name": "solar_cell_layer_type",
-                "description": "type of the layer",
+                "name": "upload_id",
+                "description": "The persistent and globally unique identifier for the upload of the entry",
+                "categories": [
+                  "/packages/16/category_definitions/1"
+                ],
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": []
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "EnumEditQuantity",
-                      "props": {
-                        "suggestions": []
-                      }
-                    }
+                  "elasticsearch": [
+                    "upload_name",
+                    "upload_name__suggestion"
                   ]
                 },
-                "name": "layer_name",
-                "description": "The name of the layer.",
+                "name": "upload_name",
+                "description": "The user provided upload name",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "0..*"
-                ]
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "auth_level": [
+                    "AuthLevel.admin"
+                  ],
+                  "elasticsearch": [
+                    "upload_create_time"
                   ]
                 },
-                "name": "layer_thickness",
-                "description": "The thickness of the layer in nm.",
+                "name": "upload_create_time",
+                "description": "The date and time when the upload was created in nomad",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "nanometer"
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 23,
-            "m_parent_sub_section": "section_definitions",
-            "name": "SolarCellBaseSectionWithOptoelectronicProperties",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
-            "quantities": [
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "entry_id"
                   ]
                 },
-                "name": "bandgap",
-                "description": "The bandgap of the solar cell.",
+                "name": "entry_id",
+                "description": "A persistent and globally unique identifier for the entry",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "electron_volt"
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 24,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "plotly_graph_object": [
-                {
-                  "data": {
-                    "x": "#voltage",
-                    "y": "#current_density"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#voltage",
-                    "y": "#current_density"
-                  }
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
-              ]
-            },
-            "name": "SolarCellJV",
-            "more": {
-              "label_quantity": "cell_name"
-            },
-            "base_sections": [
-              "/packages/0/section_definitions/3"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "FileEditQuantity"
-                    }
-                  ],
-                  "browser": [
-                    {
-                      "adaptor": "RawFileAdaptor"
-                    }
+                  "elasticsearch": [
+                    "entry_name",
+                    "entry_name__suggestion",
+                    "entry_name.prefix"
                   ]
                 },
-                "name": "data_file",
+                "name": "entry_name",
+                "description": "A brief human readable name for the entry.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -42092,780 +42012,846 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "BoolEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "entry_type"
                   ]
                 },
-                "name": "certified_values",
-                "description": "TRUE if the IV data is measured by an independent and certification institute.\nIf your solar simulator is calibrated by a calibrated reference diode,\nthat does not count as a certified result.",
+                "name": "entry_type",
+                "description": "The main schema definition. This is the name of the section used for data.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "shape": []
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "EnumEditQuantity",
-                      "props": {
-                        "suggestions": [
-                          "AIST, National Institute of Advanced Industrial Science and Technology",
-                          "CPVT, National Center of Supervision and Inspection on Solar Photovoltaic Products Quality of China",
-                          "CREST, Photovoltaic Meaasurement and calibration Laboratory at Universit of Loughborough",
-                          "CSIRO, PV Performance Lab at Monash University",
-                          "Fraunhofer ISE",
-                          "Institute of Metrology (NIM) of China",
-                          "KIER, Korea Institute of Energy Research",
-                          "NIM, National Institute of Metrology of China",
-                          "NREL",
-                          "National Institute ofMetrology, China",
-                          "Newport",
-                          "Newport Corporation",
-                          "PVEVL, National Central University, Taiwan",
-                          "Photovoltaic and Wind Power Systems Quality Test Center, Chinese Academy of Sciences",
-                          "Quality supervision\uff06Testing Center of Chemical\uff06Physical Power Sources of Information Industry",
-                          "SIMIT, Shanghai Institute of Microsystem and Information Technology",
-                          "Solar Power Lab at Arizona State University"
-                        ]
-                      }
-                    }
+                  "elasticsearch": [
+                    "calc_id"
                   ]
                 },
-                "name": "certification_institute",
-                "description": "The name of the certification institute that has measured the certified device.\nExample:\nNewport\nNIM, National Institute of Metrology of China\nKIER, Korea Institute of Energy Research",
+                "name": "calc_id",
+                "description": "Legacy field name, use `entry_id` instead.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 },
-                "shape": []
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 7,
+                "m_parent_sub_section": "quantities",
+                "name": "entry_hash",
+                "description": "A raw file content based checksum/hash",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 8,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "auth_level": [
+                    "AuthLevel.admin"
+                  ],
+                  "elasticsearch": [
+                    "entry_create_time"
                   ]
                 },
-                "name": "light_intensity",
-                "description": "The light intensity during the IV measurement\n- If there are uncertainties, only state the best estimate, e.g. write 100 and not 90-100.\n- Standard AM 1.5 illumination correspond to 100 mW/cm2\n- If you need to convert from illumination given in lux; at 550 nm, 1 mW/cm2 corresponds to 6830 lux. Be aware that the conversion change with the spectrum used. As a rule of thumb for general fluorescent/LED light sources, around 0.31mW corresponded to 1000 lux. If your light intensity is measured in lux, it probably means that your light spectra deviates quite a lot from AM 1.5, wherefore it is very important that you also specify the light spectra in the next column.",
+                "name": "entry_create_time",
+                "description": "The date and time when the entry was created in nomad",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliwatt / centimeter ** 2",
-                "default": 100.0
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
+                "m_parent_index": 9,
+                "m_parent_sub_section": "quantities",
+                "name": "last_edit_time",
+                "description": "The date and time the user metadata was last edited.",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
+                "type": {
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 10,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "parser_name"
                   ]
                 },
-                "name": "open_circuit_voltage",
-                "description": "Open circuit voltage.",
+                "name": "parser_name",
+                "description": "The NOMAD parser used for the last processing",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "volt"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
+                "m_parent_index": 11,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "mainfile",
+                    "mainfile.path",
+                    "mainfile__suggestion"
                   ]
                 },
-                "name": "short_circuit_current_density",
-                "description": "Short circuit current density.",
+                "name": "mainfile",
+                "description": "The path to the mainfile from the root directory of the uploaded files",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliampere / centimeter ** 2"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
+                "m_parent_index": 12,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "mainfile_key",
+                    "mainfile_key.path"
                   ]
                 },
-                "name": "fill_factor",
-                "description": "Fill factor.",
+                "name": "mainfile_key",
+                "description": "Key used to differentiate between different *child entries* of an entry.\nFor parent entries and entries that do not have any children, the value should\nbe empty.",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": []
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
+                "m_parent_index": 13,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "text_search_contents"
                   ]
                 },
-                "name": "efficiency",
-                "description": "Power conversion efficiency.",
+                "name": "text_search_contents",
+                "description": "Contains text contents that should be considered when\ndoing free text queries for entries.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
-                "shape": []
+                "shape": [
+                  "*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
+                "m_parent_index": 14,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "files",
+                    "files.path"
                   ]
                 },
-                "name": "potential_at_maximum_power_point",
-                "description": "The potential at the maximum power point, Vmp.",
+                "name": "files",
+                "description": "The paths to the files within the upload that belong to this entry.\nAll files within the same directory as the entry's mainfile are considered the\nauxiliary files that belong to the entry.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
-                "shape": [],
-                "unit": "volt"
+                "shape": [
+                  "0..*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
+                "m_parent_index": 15,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "pid"
                   ]
                 },
-                "name": "current_density_at_maximun_power_point",
-                "description": "The current density at the maximum power point, *Jmp*.",
+                "name": "pid",
+                "description": "The unique, sequentially enumerated, integer PID that was used in the legacy\nNOMAD CoE. It allows to resolve URLs of the old NOMAD CoE Repository.",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliampere / centimeter ** 2"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 10,
+                "m_parent_index": 16,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "raw_id"
                   ]
                 },
-                "name": "series_resistance",
-                "description": "The series resistance as extracted from the *J-V* curve.",
+                "name": "raw_id",
+                "description": "The code specific identifier extracted from the entry's raw files by the parser,\nif supported.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "centimeter ** 2 * ohm"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 11,
+                "m_parent_index": 17,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "external_id"
                   ]
                 },
-                "name": "shunt_resistance",
-                "description": "The shunt resistance as extracted from the *J-V* curve.",
+                "name": "external_id",
+                "description": "A user provided external id. Usually the id for an entry in an external database\nwhere the data was imported from.",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "centimeter ** 2 * ohm"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 12,
+                "m_parent_index": 18,
                 "m_parent_sub_section": "quantities",
-                "name": "n_values",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "published"
+                  ]
+                },
+                "name": "published",
+                "description": "Indicates if the entry is published",
+                "categories": [
+                  "/packages/16/category_definitions/1"
+                ],
                 "type": {
                   "type_kind": "python",
-                  "type_data": "int"
+                  "type_data": "bool"
                 },
-                "virtual": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 25,
-            "m_parent_sub_section": "section_definitions",
-            "name": "SolarCellJVCurve",
-            "base_sections": [
-              "/packages/14/section_definitions/24"
-            ],
-            "quantities": [
+                "default": false
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 19,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
+                  "auth_level": [
+                    "AuthLevel.admin"
+                  ],
+                  "elasticsearch": [
+                    "publish_time"
                   ]
                 },
-                "name": "cell_name",
-                "description": "Cell identification name.",
+                "name": "publish_time",
+                "description": "The date and time when the upload was published in nomad",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": []
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 20,
                 "m_parent_sub_section": "quantities",
-                "name": "current_density",
-                "description": "Current density array of the *JV* curve.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                "m_annotations": {
+                  "elasticsearch": [
+                    "with_embargo"
+                  ]
                 },
-                "shape": [
-                  "n_values"
+                "name": "with_embargo",
+                "description": "Indicated if this entry is under an embargo",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/3"
                 ],
-                "unit": "milliampere / centimeter ** 2"
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "bool"
+                },
+                "default": false
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 21,
                 "m_parent_sub_section": "quantities",
-                "name": "voltage",
-                "description": "Voltage array of the of the *JV* curve.",
+                "name": "embargo_length",
+                "description": "The length of the requested embargo period, in months",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [
-                  "n_values"
-                ],
-                "unit": "volt"
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 26,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "eln": [
-                {
-                  "lane_width": "600px"
-                }
-              ],
-              "plotly_graph_object": [
-                {
-                  "data": {
-                    "x": "#photon_energy_array",
-                    "y": "#raw_eqe_array"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#raw_photon_energy_array",
-                    "y": "#raw_eqe_array"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#raw_wavelength_array",
-                    "y": "#raw_eqe_array"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#photon_energy_array",
-                    "y": "#eqe_array"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#wavelength_array",
-                    "y": "#eqe_array"
-                  }
-                },
-                {
-                  "data": {
-                    "x": "#photon_energy_array",
-                    "y": "#eqe_array"
-                  }
+                  "type_kind": "python",
+                  "type_data": "int"
                 }
-              ]
-            },
-            "name": "SolarCellEQE",
-            "base_sections": [
-              "/packages/0/section_definitions/3"
-            ],
-            "quantities": [
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 22,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "FileEditQuantity"
-                    }
-                  ],
-                  "browser": [
-                    {
-                      "adaptor": "RawFileAdaptor"
-                    }
+                  "auth_level": [
+                    "AuthLevel.admin"
                   ]
                 },
-                "name": "eqe_data_file",
-                "description": "Drop here your eqe file and click save for processing.",
+                "name": "license",
+                "description": "A short license description (e.g. CC BY 4.0), that refers to the\nlicense of this entry.",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "default": "CC BY 4.0"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 23,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "processed"
                   ]
                 },
-                "name": "header_lines",
-                "description": "Number of header lines in the file. Edit in case your file has a header.",
+                "name": "processed",
+                "description": "Indicates that the entry is successfully processed.",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/3"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int64"
+                  "type_kind": "python",
+                  "type_data": "bool"
                 },
-                "default": 0
+                "default": false
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 24,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "last_processing_time"
                   ]
                 },
-                "name": "light_bias",
-                "description": "The light intensity of any bias light during the EQE measurement.",
+                "name": "last_processing_time",
+                "description": "The date and time of the last processing.",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliwatt / centimeter ** 2"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 25,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "processing_errors"
                   ]
                 },
-                "name": "bandgap_eqe",
-                "description": "Bandgap derived from the EQE spectrum.",
+                "name": "processing_errors",
+                "description": "Errors that occurred during processing",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
-                "shape": [],
-                "unit": "electron_volt"
+                "shape": [
+                  "*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
+                "m_parent_index": 26,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "nomad_version"
                   ]
                 },
-                "name": "integrated_jsc",
-                "description": "The integrated short circuit current density $J_{SC}$ from the product of the EQE spectrum\nwith the *AM 1.5G* sun spectrum.",
+                "name": "nomad_version",
+                "description": "The NOMAD version used for the last processing",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliampere / centimeter ** 2"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
+                "m_parent_index": 27,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "nomad_commit"
                   ]
                 },
-                "name": "integrated_j0rad",
-                "description": "The integrated $J_{0, Rad}$ derived from the EQE data.",
+                "name": "nomad_commit",
+                "description": "The NOMAD commit used for the last processing",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "milliampere / centimeter ** 2"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
+                "m_parent_index": 28,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "comment"
                   ]
                 },
-                "name": "voc_rad",
-                "description": "Radiative $V_{OC}$ derived from the EQE data in V.",
+                "name": "comment",
+                "description": "A user provided comment for this entry",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "volt"
+                  "type_kind": "python",
+                  "type_data": "str"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
+                "m_parent_index": 29,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "NumberEditQuantity"
-                    }
+                  "elasticsearch": [
+                    "references"
                   ]
                 },
-                "name": "urbach_energy",
-                "description": "Urbach energy fitted from the eqe in eV.",
+                "name": "references",
+                "description": "User provided references (URLs) for this entry",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
-                "shape": [],
-                "unit": "electron_volt"
+                "shape": [
+                  "0..*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
+                "m_parent_index": 30,
                 "m_parent_sub_section": "quantities",
-                "name": "urbach_energy_fit_std_dev",
-                "description": "Standard deviation of the fitted Urbach energy parameter from the eqe in eV.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                "m_annotations": {
+                  "elasticsearch": [
+                    "external_db"
+                  ]
                 },
-                "shape": [],
-                "unit": "electron_volt"
+                "name": "external_db",
+                "description": "The repository or external database where the original data resides",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
+                "type": {
+                  "type_kind": "enum",
+                  "type_data": [
+                    "AFLOW",
+                    "EELS Data Base",
+                    "Kyoto Phonopy Database",
+                    "Materials Project",
+                    "OQMD",
+                    "The Perovskite Database Project"
+                  ]
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
+                "m_parent_index": 31,
                 "m_parent_sub_section": "quantities",
-                "name": "n_values",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "origin"
+                  ]
+                },
+                "name": "origin",
+                "description": "A short human readable description of the entries origin. Usually it is the\nhandle of an external database/repository or the name of the main author.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "int"
+                  "type_data": "str"
                 },
                 "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 10,
+                "m_parent_index": 32,
                 "m_parent_sub_section": "quantities",
-                "name": "n_raw_values",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
+                "m_annotations": {
+                  "auth_level": [
+                    "AuthLevel.admin"
+                  ],
+                  "elasticsearch": [
+                    "main_author"
+                  ]
                 },
-                "virtual": true
+                "name": "main_author",
+                "description": "The main author of the entry",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
+                "type": {
+                  "type_kind": "User",
+                  "type_data": "User"
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 11,
+                "m_parent_index": 33,
                 "m_parent_sub_section": "quantities",
-                "name": "raw_eqe_array",
-                "description": "EQE array of the spectrum",
+                "name": "coauthors",
+                "description": "A user provided list of co-authors for the whole upload. These can view and edit the\nupload when in staging, and view it also if it is embargoed.",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "Author",
+                  "type_data": "Author"
                 },
                 "shape": [
-                  "n_raw_values"
-                ]
+                  "0..*"
+                ],
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 12,
+                "m_parent_index": 34,
                 "m_parent_sub_section": "quantities",
-                "name": "raw_photon_energy_array",
-                "description": "Raw Photon energy array of the eqe spectrum",
+                "name": "coauthor_groups",
+                "description": "A list of co-author groups for the whole upload, cf. `coauthors`.",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
                 "shape": [
-                  "n_raw_values"
+                  "0..*"
                 ],
-                "unit": "electron_volt"
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 13,
+                "m_parent_index": 35,
                 "m_parent_sub_section": "quantities",
-                "name": "raw_wavelength_array",
-                "description": "Raw wavelength array of the eqe spectrum",
+                "name": "entry_coauthors",
+                "description": "A user provided list of co-authors specific for this entry. This is a legacy field,\nfor new uploads, coauthors should be specified on the upload level only.",
+                "categories": [
+                  "/packages/16/category_definitions/2"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "Author",
+                  "type_data": "Author"
                 },
                 "shape": [
-                  "n_raw_values"
+                  "0..*"
                 ],
-                "unit": "nanometer"
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 14,
+                "m_parent_index": 36,
                 "m_parent_sub_section": "quantities",
-                "name": "eqe_array",
-                "description": "EQE array of the spectrum",
+                "name": "reviewers",
+                "description": "A user provided list of reviewers. Reviewers can see the whole upload, also if\nit is unpublished or embargoed",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "User",
+                  "type_data": "User"
                 },
                 "shape": [
-                  "n_values"
-                ]
+                  "0..*"
+                ],
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 15,
+                "m_parent_index": 37,
                 "m_parent_sub_section": "quantities",
-                "name": "wavelength_array",
-                "description": "Interpolated/extrapolated wavelength array with *E<sub>u</sub>* of the eqe spectrum",
+                "name": "reviewer_groups",
+                "description": "A list of reviewer groups, cf. `reviewers`.",
+                "categories": [
+                  "/packages/16/category_definitions/1",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
                 "shape": [
-                  "n_values"
+                  "0..*"
                 ],
-                "unit": "nanometer"
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 16,
+                "m_parent_index": 38,
                 "m_parent_sub_section": "quantities",
-                "name": "photon_energy_array",
-                "description": "Interpolated/extrapolated photon energy array with a *E<sub>u</sub>*  of the eqe spectrum",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "authors"
+                  ]
+                },
+                "name": "authors",
+                "description": "All authors (main author and co-authors)",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "Author",
+                  "type_data": "Author"
                 },
                 "shape": [
-                  "n_values"
+                  "0..*"
                 ],
-                "unit": "electron_volt"
-              }
-            ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 15,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.metainfo.eln.labfolder",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderDataElementDataContent",
-            "description": "The content of a labfolder data grid.",
-            "quantities": [
+                "virtual": true
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 39,
                 "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "the title of the table",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "writers"
+                  ]
+                },
+                "name": "writers",
+                "description": "All writers (main author, upload coauthors)",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "User",
+                  "type_data": "User"
+                },
+                "shape": [
+                  "0..*"
+                ],
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 40,
                 "m_parent_sub_section": "quantities",
-                "name": "type",
-                "description": "type",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "writer_groups"
+                  ]
+                },
+                "name": "writer_groups",
+                "description": "Groups with write access (= coauthor groups).",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "0..*"
+                ],
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 41,
                 "m_parent_sub_section": "quantities",
-                "name": "value",
-                "description": "value",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "viewers"
+                  ]
+                },
+                "name": "viewers",
+                "description": "All viewers (main author, upload coauthors, and reviewers)",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "User",
+                  "type_data": "User"
+                },
+                "shape": [
+                  "0..*"
+                ],
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 42,
                 "m_parent_sub_section": "quantities",
-                "name": "unit",
-                "description": "unit",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "viewer_groups"
+                  ]
+                },
+                "name": "viewer_groups",
+                "description": "Groups with read access (= coauthor groups + reviewer groups).",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "0..*"
+                ],
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
+                "m_parent_index": 43,
                 "m_parent_sub_section": "quantities",
-                "name": "physical_quantity_id",
-                "description": "physical_quantity_id",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "datasets"
+                  ]
+                },
+                "name": "datasets",
+                "description": "A list of user curated datasets this entry belongs to.",
+                "categories": [
+                  "/packages/16/category_definitions/2",
+                  "/packages/16/category_definitions/0"
+                ],
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "reference",
+                  "type_data": "/packages/16/section_definitions/0"
+                },
+                "shape": [
+                  "0..*"
+                ],
+                "default": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
+                "m_parent_index": 44,
                 "m_parent_sub_section": "quantities",
-                "name": "description",
-                "description": "physical_quantity_id",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "domain"
+                  ]
+                },
+                "name": "domain",
+                "description": "The material science domain",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "enum",
+                  "type_data": [
+                    "dft",
+                    "ems",
+                    "nexus"
+                  ]
                 }
-              }
-            ],
-            "sub_sections": [
+              },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "children",
-                "sub_section": "/packages/15/section_definitions/1",
-                "repeats": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderDataElementGrid",
-            "description": "A labfolder grid containing data elements.",
-            "base_sections": [
-              "/packages/15/section_definitions/0"
-            ],
-            "quantities": [
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 45,
+                "m_parent_sub_section": "quantities",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "n_quantities"
+                  ]
+                },
+                "name": "n_quantities",
+                "description": "Number of metainfo quantities parsed from the entry.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "int"
+                },
+                "default": 0
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 46,
                 "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "the title of the table",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "quantities",
+                    "quantities.path"
+                  ]
+                },
+                "name": "quantities",
+                "description": "All quantities that are used by this entry.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "0..*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 47,
                 "m_parent_sub_section": "quantities",
-                "name": "type",
-                "description": "the title of the table",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "sections"
+                  ]
+                },
+                "name": "sections",
+                "description": "All sections that are present in this entry. This field is deprecated and will be removed.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
               }
             ],
             "sub_sections": [
@@ -42873,287 +42859,328 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "children",
-                "sub_section": "/packages/15/section_definitions/0",
-                "repeats": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderElement",
-            "more": {
-              "label_quantity": "element_type"
-            },
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "id",
-                "description": "the stable pointer to the element",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                "name": "entry_timestamp",
+                "description": "A timestamp based on RFC3161.",
+                "sub_section": "/packages/16/section_definitions/4"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "entry_id",
-                "description": "the id of the stable pointer to the entry",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "optimade"
+                  ]
+                },
+                "name": "optimade",
+                "description": "Metadata used for the optimade API.",
+                "sub_section": "/packages/27/section_definitions/1"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "version_id",
-                "description": "the unique id of the element",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "section_defs"
+                  ]
+                },
+                "name": "section_defs",
+                "description": "All sections that are compatible with the present sections in this entry.",
+                "sub_section": "/packages/16/section_definitions/1",
+                "repeats": true
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "version_date",
-                "description": "the creation date of the entry element version (same with the creation date on the first version)",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "entry_references"
+                  ]
+                },
+                "name": "entry_references",
+                "sub_section": "/packages/16/section_definitions/2",
+                "repeats": true
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "creation_date",
-                "description": "the creation date of the entry element (first version)",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "owner_id",
-                "description": "the id of the original author",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "element_type",
-                "description": "Denotes that this is a file element. The value is always `FILE`",
-                "type": {
-                  "type_kind": "enum",
-                  "type_data": [
-                    "DATA",
-                    "FILE",
-                    "TABLE",
-                    "TEXT",
-                    "WELL_PLATE"
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "search_quantities"
                   ]
-                }
+                },
+                "name": "search_quantities",
+                "sub_section": "/packages/16/section_definitions/3",
+                "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
+            "m_parent_index": 6,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderEntry",
-            "more": {
-              "label_quantity": "title"
-            },
+            "name": "EntryArchive",
+            "label": "Entry",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
+            ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "id",
-                "description": "Labfolder entry id",
+                "name": "entry_id",
+                "description": "The unique primary id for this entry.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "version_id",
+                "name": "processing_logs",
+                "description": "The processing logs for this entry as a list of structlog entries.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Any"
+                },
+                "shape": [
+                  "0..*"
+                ]
+              }
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "run",
+                "sub_section": "/packages/11/section_definitions/3",
+                "repeats": true
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "measurement",
+                "sub_section": "/packages/14/section_definitions/3",
+                "repeats": true
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "author_id",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "name": "data",
+                "sub_section": "/packages/23/section_definitions/1"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "project_id",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "name": "workflow",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/6/section_definitions/34",
+                "repeats": true
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "version_date",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "name": "workflow2",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/26/section_definitions/3"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "creation_date",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "metadata"
+                  ]
+                },
+                "name": "metadata",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/16/section_definitions/5"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "custom_dates",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                "m_parent_sub_section": "sub_sections",
+                "m_annotations": {
+                  "elasticsearch": [
+                    "results"
+                  ]
                 },
-                "shape": [
-                  "*"
-                ]
+                "name": "results",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/13/section_definitions/85"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 7,
-                "m_parent_sub_section": "quantities",
-                "name": "tags",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
+                "m_parent_sub_section": "sub_sections",
+                "name": "tabular_tree",
+                "sub_section": "/packages/15/section_definitions/4",
+                "repeats": false
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "Labfolder entry title",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
-                "m_parent_sub_section": "quantities",
-                "name": "hidden",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                }
-              },
+                "m_parent_sub_section": "sub_sections",
+                "name": "definitions",
+                "sub_section": "/packages/28/section_definitions/4"
+              }
+            ]
+          }
+        ],
+        "category_definitions": [
+          {
+            "m_def": "nomad.metainfo.metainfo.Category",
+            "m_parent_index": 0,
+            "m_parent_sub_section": "category_definitions",
+            "name": "EditableUserMetadata",
+            "description": "NOMAD entry metadata quantities that can be edited by the user before or after publish."
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Category",
+            "m_parent_index": 1,
+            "m_parent_sub_section": "category_definitions",
+            "name": "MongoUploadMetadata",
+            "description": "The field is defined on the Upload mongo document."
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Category",
+            "m_parent_index": 2,
+            "m_parent_sub_section": "category_definitions",
+            "name": "MongoEntryMetadata",
+            "description": "The field is defined on the Entry mongo document."
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Category",
+            "m_parent_index": 3,
+            "m_parent_sub_section": "category_definitions",
+            "name": "MongoSystemMetadata",
+            "description": "The field is managed directly by the system/process (or derived from data managed by the\nsystem/process), and should never be updated from an :class:`EntryMetadata` object."
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Category",
+            "m_parent_index": 4,
+            "m_parent_sub_section": "category_definitions",
+            "name": "DomainMetadata",
+            "description": "NOMAD entry quantities that are determined by the uploaded data."
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 17,
+        "m_parent_sub_section": "packages",
+        "name": "nomad.parsing.tabular",
+        "section_definitions": [
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 0,
+            "m_parent_sub_section": "section_definitions",
+            "name": "TableData",
+            "description": "Table data",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 10,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "editable",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "BoolEditQuantity"
+                    }
+                  ]
+                },
+                "name": "fill_archive_from_datafile",
+                "description": "While checked, it allows the parser to fill all the Quantities from the data file.\nBe cautious though! as checking this box will cause overwriting your fields with data parsed from the data file",
                 "type": {
                   "type_kind": "python",
                   "type_data": "bool"
-                }
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "elements",
-                "sub_section": "/packages/15/section_definitions/2",
-                "repeats": true
+                },
+                "default": true
               }
             ]
-          },
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 18,
+        "m_parent_sub_section": "packages",
+        "name": "nomad.datamodel.metainfo.eln",
+        "section_definitions": [
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 4,
+            "m_parent_index": 0,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderTextElement",
-            "base_sections": [
-              "/packages/15/section_definitions/2"
-            ],
+            "name": "User",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
-                    {}
+                  "eln": [
+                    {
+                      "component": "AuthorEditQuantity"
+                    }
                   ]
                 },
-                "name": "content",
-                "description": "The text based content of this element",
+                "name": "user",
+                "description": "The corresponding user for the activity.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "Author",
+                  "type_data": "Author"
                 }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 5,
+            "m_parent_index": 1,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderFileElement",
+            "name": "ElnBaseSection",
+            "description": "A generic abstract base section for ELNs that provides a few commonly used properties. If you inherit from this section, but do not need some quantities, list those\nquantities in the `eln.hide` annotation of your inheriting section definition.\n\nBesides predefining some quantities, these base sections will add some metadata\nto NOMAD's search. A particular example are `tags`, if you define a string\nor enum quantity in your sections named `tags`, its values will be searchable.",
             "base_sections": [
-              "/packages/15/section_definitions/2"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "file_name",
-                "description": "The name of the file",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "short name"
+                    }
+                  ]
+                },
+                "name": "name",
+                "description": "A short human readable and descriptive name.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43163,19 +43190,34 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "file_size",
-                "description": "The size of the file in bytes",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "DateTimeEditQuantity"
+                    }
+                  ]
+                },
+                "name": "datetime",
+                "description": "The date and time associated with this section.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "content_type",
-                "description": "The type of the binary content which is sent on header parameter `Content-Type`",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "ID"
+                    }
+                  ]
+                },
+                "name": "lab_id",
+                "description": "An ID string that is unique at least for the lab that produced this\ndata.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43186,13 +43228,14 @@ window.nomadArtifacts = {
                 "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
+                  "eln": [
                     {
-                      "adaptor": "RawFileAdaptor"
+                      "component": "RichTextEditQuantity"
                     }
                   ]
                 },
-                "name": "file",
+                "name": "description",
+                "description": "Any information that cannot be captured in the other fields.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43202,205 +43245,190 @@ window.nomadArtifacts = {
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 6,
+            "m_parent_index": 2,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderImageElement",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ]
+            },
+            "name": "BasicEln",
+            "label": "Basic ELN",
+            "description": "The most basic ELN to instantiate.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
             "base_sections": [
-              "/packages/15/section_definitions/2"
+              "/packages/18/section_definitions/1",
+              "/packages/23/section_definitions/1"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "the title of the image element",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "file_size",
-                "description": "the size of the image file in bytes",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "preview_height",
-                "description": "height of the downscaled image version, in px",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "preview_width",
-                "description": "width of the downscaled image version, in px",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "preview_zoom",
-                "description": "image zoom in the ELN UI, in percentage",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "float"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "original_file_content_type",
-                "description": "the content type of the original uploaded image file",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
+                },
+                "shape": [
+                  "*"
+                ]
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 3,
+            "m_parent_sub_section": "section_definitions",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
                 }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "annotation_layer_svg",
-                "description": "The vector graphic used for the image annotation layer, defined in SVG format",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+              ],
+              "template": [
+                {
+                  "process_identifiers": {}
                 }
-              },
+              ]
+            },
+            "name": "ELNProcess",
+            "label": "Material Processing ELN",
+            "description": "A basic electronic lab notebook for a material processing activity.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
+            "base_sections": [
+              "/packages/24/section_definitions/20",
+              "/packages/23/section_definitions/1"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
+                  "eln": [
                     {
-                      "adaptor": "RawFileAdaptor"
+                      "component": "StringEditQuantity"
                     }
-                  ]
-                },
-                "name": "original_image_file",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "browser": [
+                  ],
+                  "template": [
                     {
-                      "adaptor": "RawFileAdaptor"
+                      "process_identifiers": {}
                     }
                   ]
                 },
-                "name": "preview_image_file",
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
+              }
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "process_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 7,
+            "m_parent_index": 4,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderTableElement",
+            "name": "BasicMeasurementResult",
+            "label": "Measurement Result",
+            "description": "A basic section for describing the result of a measurement.",
             "base_sections": [
-              "/packages/15/section_definitions/2"
+              "/packages/24/section_definitions/25"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "the title of the table",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
-                    {}
+                  "eln": [
+                    {
+                      "component": "RichTextEditQuantity"
+                    }
                   ]
                 },
-                "name": "content",
-                "description": "The JSON content of the table element",
+                "name": "result",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.JSON"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 8,
+            "m_parent_index": 5,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderDataElement",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "template": [
+                {
+                  "measurement_identifiers": {}
+                }
+              ]
+            },
+            "name": "ELNMeasurement",
+            "label": "Measurement ELN",
+            "description": "A basic electronic lab notebook for a measurement activity.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
             "base_sections": [
-              "/packages/15/section_definitions/2"
+              "/packages/24/section_definitions/26",
+              "/packages/23/section_definitions/1"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "browser": [
-                    {}
-                  ]
-                },
-                "name": "labfolder_data",
-                "description": "The JSON content of the table element",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.JSON"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
                 "m_annotations": {
                   "eln": [
                     {
-                      "component": "ReferenceEditQuantity"
+                      "component": "StringEditQuantity"
                     }
                   ]
                 },
-                "name": "nomad_data_schema",
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/3"
-                }
+                  "type_kind": "python",
+                  "type_data": "str"
+                },
+                "shape": [
+                  "*"
+                ]
               }
             ],
             "sub_sections": [
@@ -43408,84 +43436,75 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "data_elements",
-                "sub_section": "/packages/15/section_definitions/1",
-                "repeats": true
+                "name": "measurement_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
-                "name": "nomad_data",
-                "sub_section": "/packages/15/section_definitions/2"
+                "name": "results",
+                "description": "The result of the measurement.",
+                "sub_section": "/packages/18/section_definitions/4",
+                "repeats": true
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 9,
+            "m_parent_index": 6,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderWellPlateElement",
+            "name": "BasicAnalysisResult",
+            "label": "Analysis Result",
+            "description": "A basic section for describing the result of an analysis.",
             "base_sections": [
-              "/packages/15/section_definitions/2"
+              "/packages/24/section_definitions/22"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "title",
-                "description": "The title of the well plate template",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "browser": [
-                    {}
-                  ]
-                },
-                "name": "content",
-                "description": "The title of the well plate template",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.JSON"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
-                    {}
+                  "eln": [
+                    {
+                      "component": "RichTextEditQuantity"
+                    }
                   ]
                 },
-                "name": "meta_data",
-                "description": "JSON meta data for visualization processing, used to store information about layer colors and well identifiers",
+                "name": "result",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.JSON"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 10,
+            "m_parent_index": 7,
             "m_parent_sub_section": "section_definitions",
-            "name": "LabfolderProject",
-            "label": "Labfolder Project Import",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "template": [
+                {
+                  "analysis_identifiers": {}
+                }
+              ]
+            },
+            "name": "ELNAnalysis",
+            "label": "Analysis ELN",
+            "description": "A basic electronic lab notebook for an analysis activity.",
             "categories": [
-              "/packages/25/category_definitions/1"
+              "/packages/23/category_definitions/2"
             ],
             "base_sections": [
-              "/packages/25/section_definitions/1"
+              "/packages/24/section_definitions/23",
+              "/packages/23/section_definitions/1"
             ],
             "quantities": [
               {
@@ -43499,65 +43518,83 @@ window.nomadArtifacts = {
                     }
                   ]
                 },
-                "name": "project_url",
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
+              }
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "analysis_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "StringEditQuantity"
-                    }
-                  ]
-                },
-                "name": "labfolder_email",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                "m_parent_sub_section": "sub_sections",
+                "name": "outputs",
+                "description": "The input data of the analysis.",
+                "sub_section": "/packages/18/section_definitions/6",
+                "repeats": true
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 8,
+            "m_parent_sub_section": "section_definitions",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
                 }
-              },
+              ],
+              "template": [
+                {
+                  "sample_identifiers": {}
+                }
+              ]
+            },
+            "name": "ELNSample",
+            "label": "Generic Sample ELN",
+            "description": "A basic electronic lab notebook for a generic sample.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
+            "base_sections": [
+              "/packages/24/section_definitions/17",
+              "/packages/23/section_definitions/1"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
                   "eln": [
                     {
-                      "component": "StringEditQuantity",
-                      "props": {
-                        "type": "password"
-                      }
+                      "component": "StringEditQuantity"
                     }
                   ]
                 },
-                "name": "password",
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "BoolEditQuantity"
-                    }
-                  ]
                 },
-                "name": "resync_labfolder_repository",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                }
+                "shape": [
+                  "*"
+                ]
               }
             ],
             "sub_sections": [
@@ -43565,171 +43602,179 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "entries",
-                "sub_section": "/packages/15/section_definitions/3",
-                "repeats": true
+                "name": "sample_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               }
             ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 16,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.metainfo.eln.openbis",
-        "section_definitions": [
+          },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
+            "m_parent_index": 9,
             "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisBaseSection",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "code",
-                "description": "Code for the current section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "description",
-                "description": "Description of the current section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
                 }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "frozen",
-                "description": "If current space is frozen.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
+              ],
+              "template": [
+                {
+                  "substance_identifiers": {},
+                  "substance": {
+                    "m_def": "nomad.datamodel.metainfo.basesections.PubChemPureSubstanceSection"
+                  }
                 }
-              },
+              ]
+            },
+            "name": "ELNSubstance",
+            "label": "Substance ELN",
+            "description": "A basic electronic lab notebook for a generic sample.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
+            "base_sections": [
+              "/packages/24/section_definitions/27",
+              "/packages/23/section_definitions/1"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "permId",
-                "description": "Permanent id of the current section.",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "modificationDate",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "registration_date",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "custom_dates",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
                 },
                 "shape": [
                   "*"
                 ]
               }
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "substance_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
+              }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
+            "m_parent_index": 10,
             "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisAttachment",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "template": [
+                {
+                  "instrument_identifiers": {}
+                }
+              ]
+            },
+            "name": "ELNInstrument",
+            "label": "Instrument ELN",
+            "description": "A basic electronic lab notebook for a generic instrument.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
+            "base_sections": [
+              "/packages/24/section_definitions/11",
+              "/packages/23/section_definitions/1"
+            ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "browser": [
+                  "eln": [
                     {
-                      "adaptor": "RawFileAdaptor"
+                      "component": "StringEditQuantity"
                     }
                   ]
                 },
-                "name": "file",
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
               }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisExperiment",
-            "base_sections": [
-              "/packages/16/section_definitions/0"
             ],
             "sub_sections": [
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "attachments",
-                "sub_section": "/packages/16/section_definitions/1",
-                "repeats": true
+                "name": "instrument_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
+            "m_parent_index": 11,
             "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisProject",
-            "more": {
-              "label_quantity": "code"
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "template": [
+                {
+                  "collection_identifiers": {}
+                }
+              ]
             },
+            "name": "ELNCollection",
+            "label": "Collection ELN",
+            "description": "A basic electronic lab notebook for a collection of entities.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
             "base_sections": [
-              "/packages/16/section_definitions/0"
+              "/packages/24/section_definitions/8",
+              "/packages/23/section_definitions/1"
             ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "identifier",
-                "description": "Path of the current item in the Openbis file system.",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
               }
             ],
             "sub_sections": [
@@ -43737,46 +43782,78 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "experiments",
-                "sub_section": "/packages/16/section_definitions/2",
-                "repeats": true
+                "name": "collection_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 4,
+            "m_parent_index": 12,
             "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisSpace",
-            "description": "Name of the current Openbis Space.",
-            "more": {
-              "label_quantity": "code"
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "template": [
+                {
+                  "experiment_identifiers": {}
+                }
+              ]
             },
+            "name": "ELNExperiment",
+            "label": "Experiment ELN",
+            "description": "A basic electronic lab notebook for a collection of activities.",
+            "categories": [
+              "/packages/23/category_definitions/2"
+            ],
             "base_sections": [
-              "/packages/16/section_definitions/0"
+              "/packages/24/section_definitions/7",
+              "/packages/23/section_definitions/1"
+            ],
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "tags",
+                "description": "Add a tag that can be used for search.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                },
+                "shape": [
+                  "*"
+                ]
+              }
             ],
             "sub_sections": [
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "projects",
-                "sub_section": "/packages/16/section_definitions/3",
-                "repeats": true
+                "name": "experiment_identifiers",
+                "sub_section": "/packages/24/section_definitions/32"
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 5,
+            "m_parent_index": 13,
             "m_parent_sub_section": "section_definitions",
-            "name": "OpenbisEntry",
-            "label": "Openbis Project Import",
-            "categories": [
-              "/packages/25/category_definitions/1"
-            ],
+            "name": "SampleID",
+            "description": "A base section that can be used for sample IDs. If the `sample_owner`, `sample_short_name`, `institute`, and `creation_datetime`\nquantities are provided, the sample_id will be automatically created as a combination\nof these four quantities.",
             "base_sections": [
-              "/packages/25/section_definitions/1"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -43790,7 +43867,8 @@ window.nomadArtifacts = {
                     }
                   ]
                 },
-                "name": "project_url",
+                "name": "institute",
+                "description": "Alias/short name of the home institute of the owner, i.e. *HZB*.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43807,11 +43885,13 @@ window.nomadArtifacts = {
                     }
                   ]
                 },
-                "name": "username",
+                "name": "sample_owner",
+                "description": "Name or alias of the process operator, e.g. jmp",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
@@ -43820,118 +43900,30 @@ window.nomadArtifacts = {
                 "m_annotations": {
                   "eln": [
                     {
-                      "component": "StringEditQuantity",
-                      "props": {
-                        "type": "password"
-                      }
+                      "component": "DateTimeEditQuantity"
                     }
                   ]
                 },
-                "name": "password",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "spaces",
-                "sub_section": "/packages/16/section_definitions/4",
-                "repeats": true
-              }
-            ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 17,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.metainfo.measurements",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "name": "Sample",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "sample_id",
-                "description": "Identification number or signatures of the sample used.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "name",
-                "description": "A human readable free text name for the sample.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "description",
-                "description": "A description of the sample.",
+                "name": "creation_datetime",
+                "description": "Creation date of the sample.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "custom",
+                  "type_data": "nomad.metainfo.data_type.Datetime"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
-                "name": "sample_state",
-                "description": "The physical state of the sample.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "sample_temperature",
-                "description": "The temperature of the sample during the measurement.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
                 },
-                "unit": "kelvin"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "sample_microstructure",
-                "description": "The sample microstructure.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "sample_constituents",
-                "description": "The constituents.",
+                "name": "sample_short_name",
+                "description": "A short name of the sample (the identifier scribed on the smaple,\nor in the sample container), e.g. 4001-8, YAG-2-34.\nThis is to be managed and decided internally by the labs,\nalthough we recomend to avoid the following characters on it: \"_\", \"/\", \"\" and \".\"",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43939,22 +43931,17 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
-                "name": "elements",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
                 },
-                "shape": [
-                  "*"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "name": "chemical_formula",
+                "name": "sample_id",
+                "description": "Full sample id. Ideally a human readable sample id convention,\nwhich is simple, understandable and still having chances of becoming unique.\nIf the `sample_owner`, `sample_short_name`, `\u00ecnstitute`, and `creation_datetime`\nare provided, this will be formed automatically by joining these components by an underscore (_).\nSpaces in any of the individual components will be replaced with hyphens (-).\nAn example would be hzb_oah_20200602_4001-08",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43964,16 +43951,17 @@ window.nomadArtifacts = {
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
+            "m_parent_index": 14,
             "m_parent_sub_section": "section_definitions",
-            "name": "Experiment",
+            "name": "CASExperimentalProperty",
+            "description": "A section for experimental properties retrieved from the CAS API.",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "name": "name",
-                "description": "A human readable free text name for the experiment.",
+                "description": "CAS experimental property name.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43983,8 +43971,8 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "description",
-                "description": "A description of the experiment.",
+                "name": "property",
+                "description": "CAS experimental property.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -43994,60 +43982,28 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "steps",
-                "description": "Human readable experiment steps.",
+                "name": "sourceNumber",
+                "description": "CAS experimental property source.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "sample_ref",
-                "description": "Reference to the used sample.",
-                "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/17/section_definitions/0"
                 }
               }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "sample",
-                "description": "The used sample.",
-                "sub_section": "/packages/17/section_definitions/0"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "measurement",
-                "description": "Measurements performed in this experiment.",
-                "sub_section": "/packages/17/section_definitions/3",
-                "repeats": true
-              }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
+            "m_parent_index": 15,
             "m_parent_sub_section": "section_definitions",
-            "name": "Instrument",
+            "name": "CASPropertyCitation",
+            "description": "A section for citations of the experimental properties retrieved from the CAS API.",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "instrument_id",
-                "description": "Identification number or signatures of the instrument used.",
+                "name": "docUri",
+                "description": "CAS property citation document uri.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44057,19 +44013,21 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "name",
-                "description": "A human readable free text name for the instrument.",
+                "name": "sourceNumber",
+                "more": {
+                  "decription": "CAS property citation source number."
+                },
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "int"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "description",
-                "description": "A description of the instrument.",
+                "name": "source",
+                "description": "CAS property citation source.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44079,15 +44037,28 @@ window.nomadArtifacts = {
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
+            "m_parent_index": 16,
             "m_parent_sub_section": "section_definitions",
-            "name": "Measurement",
+            "name": "Substance",
+            "description": "A base section for any substance defined in the ELN.",
+            "base_sections": [
+              "/packages/24/section_definitions/10"
+            ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "measurement_id",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "substance name"
+                    }
+                  ]
+                },
+                "name": "name",
+                "description": "The name of the substance entry.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44097,7 +44068,16 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "name",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "substance ID"
+                    }
+                  ]
+                },
+                "name": "lab_id",
+                "description": "A human human readable substance ID that is at least unique for the lab.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44107,7 +44087,16 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "description",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "CAS uri"
+                    }
+                  ]
+                },
+                "name": "cas_uri",
+                "description": "CAS uri",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44117,7 +44106,16 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
-                "name": "method_name",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "CAS number"
+                    }
+                  ]
+                },
+                "name": "cas_number",
+                "description": "CAS number.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44127,7 +44125,16 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
-                "name": "method_abbreviation",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity",
+                      "label": "CAS name"
+                    }
+                  ]
+                },
+                "name": "cas_name",
+                "description": "CAS name.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44137,67 +44144,74 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
-                "name": "start_time",
-                "description": "The datetime of the beginning of the measurement.",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "FileEditQuantity"
+                    }
+                  ],
+                  "browser": [
+                    {
+                      "adaptor": "RawFileAdaptor"
+                    }
+                  ]
+                },
+                "name": "image",
+                "description": "CAS image.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
-                "name": "end_time",
-                "description": "The datetime of the measurement end.",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "inchi",
+                "description": "CAS inchi.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                  "type_kind": "python",
+                  "type_data": "str"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 7,
                 "m_parent_sub_section": "quantities",
-                "name": "facility",
-                "description": "Description of the facility (e.g. in full or an acronym) where\nthe measurement was conducted.",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "inchi_key",
+                "description": "CAS inchi key.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "sample",
-                "sub_section": "/packages/17/section_definitions/0",
-                "repeats": true
               },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "instrument",
-                "sub_section": "/packages/17/section_definitions/2",
-                "repeats": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "inner_section_definitions",
-            "name": "SpectrumChannel",
-            "description": "Provides the metadata for a generic additional spectrum channel. Do not use it for energy or count; they have their predefined channels.",
-            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 8,
                 "m_parent_sub_section": "quantities",
-                "name": "channel_id",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "smile",
+                "description": "CAS smile.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44205,9 +44219,17 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 9,
                 "m_parent_sub_section": "quantities",
-                "name": "label",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "canonical_smile",
+                "description": "CAS canonical smile.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44215,88 +44237,73 @@ window.nomadArtifacts = {
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
+                "m_parent_index": 10,
                 "m_parent_sub_section": "quantities",
-                "name": "unit",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "molecular_formula",
+                "description": "CAS molecular formula.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 5,
-            "m_parent_sub_section": "section_definitions",
-            "name": "Spectrum",
-            "description": "Generic spectrum data with energies and counts. May include additional channels.",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "n_values",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                },
-                "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 11,
                 "m_parent_sub_section": "quantities",
-                "name": "count",
-                "description": "The count at each energy value, dimensionless",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
+                  ]
                 },
-                "shape": [
-                  "n_values"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "energy",
-                "description": "The energy range of the spectrum",
+                "name": "molecular_mass",
+                "description": "CAS molecular mass.",
                 "type": {
                   "type_kind": "numpy",
                   "type_data": "float64"
                 },
-                "shape": [
-                  "n_values"
-                ],
-                "unit": "joule"
+                "unit": "dalton"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 12,
                 "m_parent_sub_section": "quantities",
-                "name": "additional_channel_data",
-                "description": "Data from additional channels. The channels are described in `additional channels`.",
+                "name": "cas_synonyms",
+                "description": "CAS synonyms.",
                 "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
+                  "type_kind": "python",
+                  "type_data": "str"
                 },
                 "shape": [
-                  "n_channels",
-                  "n_values"
+                  "*"
                 ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
+                "m_parent_index": 13,
                 "m_parent_sub_section": "quantities",
-                "name": "n_additional_channels",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "RichTextEditQuantity",
+                      "label": "detailed substance description"
+                    }
+                  ]
+                },
+                "name": "description",
+                "description": "A field for adding additional information about the substance that is not captured\nby the other quantities and subsections.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "int"
-                },
-                "virtual": true
+                  "type_data": "str"
+                }
               }
             ],
             "sub_sections": [
@@ -44304,144 +44311,43 @@ window.nomadArtifacts = {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
-                "name": "additional_channels",
-                "description": "Metadata for additional channels. The order is the same as the channel data\nappears in `additional_channel_data`.",
-                "sub_section": "/packages/17/section_definitions/5/inner_section_definitions/0",
+                "name": "cas_experimental_properties",
+                "sub_section": "/packages/18/section_definitions/14",
                 "repeats": true
-              }
-            ],
-            "inner_section_definitions": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Section",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "inner_section_definitions",
-                "name": "SpectrumChannel",
-                "description": "Provides the metadata for a generic additional spectrum channel. Do not use it for energy or count; they have their predefined channels.",
-                "quantities": [
-                  {
-                    "m_def": "nomad.metainfo.metainfo.Quantity",
-                    "m_parent_index": 0,
-                    "m_parent_sub_section": "quantities",
-                    "name": "channel_id",
-                    "type": {
-                      "type_kind": "python",
-                      "type_data": "str"
-                    }
-                  },
-                  {
-                    "m_def": "nomad.metainfo.metainfo.Quantity",
-                    "m_parent_index": 1,
-                    "m_parent_sub_section": "quantities",
-                    "name": "label",
-                    "type": {
-                      "type_kind": "python",
-                      "type_data": "str"
-                    }
-                  },
-                  {
-                    "m_def": "nomad.metainfo.metainfo.Quantity",
-                    "m_parent_index": 2,
-                    "m_parent_sub_section": "quantities",
-                    "name": "unit",
-                    "type": {
-                      "type_kind": "python",
-                      "type_data": "str"
-                    }
-                  }
-                ]
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 6,
-            "m_parent_sub_section": "section_definitions",
-            "name": "EELSMeasurement",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "edges",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "publish_time",
-                "description": "The datetime that this was published on EELS DB.",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "spectrum",
-                "sub_section": "/packages/17/section_definitions/5"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
-                "name": "authors",
-                "more": {
-                  "repreats": true
-                },
-                "sub_section": "/packages/25/section_definitions/2"
+                "name": "cas_property_citations",
+                "sub_section": "/packages/18/section_definitions/15",
+                "repeats": true
               }
             ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 18,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.metainfo.tabulartree",
-        "section_definitions": [
+          },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
+            "m_parent_index": 17,
             "m_parent_sub_section": "section_definitions",
-            "name": "TabularTreeNodeInfo",
+            "name": "ElnWithFormulaBaseSection",
+            "description": "A generic abstract base section for ELNs that provides a few commonly used for items with a chemical formula, e.g. chemicals or samples.",
+            "base_sections": [
+              "/packages/18/section_definitions/1"
+            ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "value",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Any"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "description",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "unit",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "chemical_formula",
+                "description": "The chemical formula. This will be used directly and indirectly in the search. The formula will be used itself as well as the extracted chemical elements.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
@@ -44451,1965 +44357,956 @@ window.nomadArtifacts = {
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
+            "m_parent_index": 18,
             "m_parent_sub_section": "section_definitions",
-            "name": "TabularTreeLevel3",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "name",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "default": "<node name?>"
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "info",
-                "sub_section": "/packages/18/section_definitions/0"
-              }
+            "name": "Chemical",
+            "description": "A ELN base section that can be used for chemicals.",
+            "base_sections": [
+              "/packages/18/section_definitions/17"
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
+            "m_parent_index": 19,
             "m_parent_sub_section": "section_definitions",
-            "name": "TabularTreeLevel2",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "name",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "default": "<node name?>"
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "info",
-                "sub_section": "/packages/18/section_definitions/0"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "nodes",
-                "sub_section": "/packages/18/section_definitions/1",
-                "repeats": true
-              }
+            "name": "Sample",
+            "description": "A ELN base section that can be used for samples.",
+            "base_sections": [
+              "/packages/18/section_definitions/17"
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
+            "m_parent_index": 20,
             "m_parent_sub_section": "section_definitions",
-            "name": "TabularTreeLevel1",
+            "name": "ElnWithStructureFile",
+            "description": "A base section for for parsing crystal structure files, e.g. `.cif`, and populating the Material section in Results.",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
+            ],
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "name",
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "FileEditQuantity"
+                    }
+                  ]
+                },
+                "name": "structure_file",
+                "description": "The structure file.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "default": "<node name?>"
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "info",
-                "sub_section": "/packages/18/section_definitions/0"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "nodes",
-                "sub_section": "/packages/18/section_definitions/2",
-                "repeats": true
+                }
               }
             ]
           },
           {
             "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 4,
+            "m_parent_index": 21,
             "m_parent_sub_section": "section_definitions",
-            "name": "TabularTree",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "name",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "default": "<node name?>"
-              }
+            "name": "SolarCellDefinition",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
             ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "info",
-                "sub_section": "/packages/18/section_definitions/0"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "nodes",
-                "sub_section": "/packages/18/section_definitions/3",
-                "repeats": true
-              }
-            ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 19,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.datamodel.datamodel",
-        "description": "All generic entry metadata and related classes.",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "m_annotations": {
-              "mongo": [
-                "MongoDocument"
-              ],
-              "pydantic": [
-                "PydanticModel"
-              ]
-            },
-            "name": "Dataset",
-            "description": "A Dataset is attached to one or many entries to form a set of data.",
             "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ],
-                  "elasticsearch": [
-                    "datasets.dataset_id"
+                  "eln": [
+                    {
+                      "component": "EnumEditQuantity",
+                      "props": {
+                        "suggestions": []
+                      }
+                    }
                   ]
                 },
-                "name": "dataset_id",
-                "description": "The unique identifier for this dataset as a string. It should be\na randomly generated UUID, similar to other nomad ids.",
+                "name": "stack_sequence",
+                "description": "The stack sequence describing the cell. Use the following formatting guidelines\n- Start with the substrate to the left and list the materials in each layer of the device\n- If two materials, e.g. A and B, are mixed in one layer, list the materials in alphabetic order and separate them with semicolons, as in (A; B)\n- The absorber layer in other databases is commonly stated with a generaic name as \u201cPerovskite\u201d, regardless of composition, mixtures, dimensionality etc.\n    There are other fields to describe in depth the absorber layer.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ],
-                  "elasticsearch": [
-                    "datasets.dataset_name",
-                    "datasets.dataset_name__suggestion"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "dataset_name",
-                "description": "The human-readable name of the dataset as string. The dataset name must be\nunique for the user.",
+                "name": "solar_cell_area",
+                "description": "The total cell area in cm^2.\nThe total area is defined as the area that would provide photovoltaic performance.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
                 "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
+                  "eln": [
+                    {
+                      "component": "EnumEditQuantity",
+                      "props": {
+                        "suggestions": [
+                          "Unknown",
+                          "Pn-Heterojunction",
+                          "Front contacted",
+                          "Back contacted",
+                          "pin",
+                          "nip",
+                          "Schottky"
+                        ]
+                      }
+                    }
                   ]
                 },
-                "name": "user_id",
-                "description": "The unique user_id of the owner and creator of this dataset. The owner\nmust not change after creation.",
+                "name": "architecture",
+                "description": "The cell architecture with respect to the direction of current flow and\nthe order in which layers are deposited.\nThe two most common are nip (also referred to as normal) and pin (also referred to as inverted)\nbut there are also a few others, e.g. Back contacted.\n- *nip* architecture means that the electrons are collected at the substrate side.\nThe typical example is in perovskite solar cells when a TiO2 electron selective contact is deposited\nbetween the perovskite and the substrate (e.g. SLG | FTO | TiO2-c | Perovskite | \u2026)\n- *pin* architecture means that it instead is the holes that are collected at the substrate side. The typical example is when a PEDOT:PSS hole selective contact is deposited between the perovskite and the substrate (e.g. SLG | FTO | PEDOT:PSS |Perovskite | \u2026)",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
-              },
+                },
+                "shape": []
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 22,
+            "m_parent_sub_section": "section_definitions",
+            "name": "SolarCellLayer",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ],
-                  "elasticsearch": [
-                    "datasets.doi"
+                  "eln": [
+                    {
+                      "component": "EnumEditQuantity",
+                      "props": {
+                        "suggestions": [
+                          "Substrate",
+                          "Absorber",
+                          "Hole Transport Layer",
+                          "Electron Transport Layer",
+                          "Contact",
+                          "Buffer",
+                          "p-type contact",
+                          "n-type contact",
+                          "other"
+                        ]
+                      }
+                    }
                   ]
                 },
-                "name": "doi",
-                "description": "The optional Document Object Identifier (DOI) associated with this dataset.\nNomad can register DOIs that link back to the respective representation of\nthe dataset in the nomad UI. This quantity holds the string representation of\nthis DOI. There is only one per dataset. The DOI is just the DOI name, not its\nfull URL, e.g. \"10.17172/nomad/2019.10.29-1\".",
+                "name": "solar_cell_layer_type",
+                "description": "type of the layer",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
+                  "eln": [
+                    {
+                      "component": "EnumEditQuantity",
+                      "props": {
+                        "suggestions": []
+                      }
+                    }
                   ]
                 },
-                "name": "pid",
-                "description": "The original NOMAD CoE Repository dataset PID. Old DOIs still reference\ndatasets based on this id. Is not used for new datasets.",
+                "name": "layer_name",
+                "description": "The name of the layer.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                }
+                },
+                "shape": [
+                  "0..*"
+                ]
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ],
-                  "elasticsearch": [
-                    "datasets.dataset_create_time"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "dataset_create_time",
-                "description": "The date when the dataset was first created.",
+                "name": "layer_thickness",
+                "description": "The thickness of the layer in nm.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "nanometer"
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 23,
+            "m_parent_sub_section": "section_definitions",
+            "name": "SolarCellBaseSectionWithOptoelectronicProperties",
+            "base_sections": [
+              "/packages/23/section_definitions/0"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ],
-                  "elasticsearch": [
-                    "datasets.dataset_modified_time"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "dataset_modified_time",
-                "description": "The date when the dataset was last modified. An owned dataset\ncan only be extended after a DOI was assigned. A foreign dataset cannot be changed\nonce a DOI was assigned.",
+                "name": "bandgap",
+                "description": "The bandgap of the solar cell.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "electron_volt"
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 24,
+            "m_parent_sub_section": "section_definitions",
+            "m_annotations": {
+              "plotly_graph_object": [
+                {
+                  "data": {
+                    "x": "#voltage",
+                    "y": "#current_density"
+                  }
+                },
+                {
+                  "data": {
+                    "x": "#voltage",
+                    "y": "#current_density"
+                  }
                 }
-              },
+              ]
+            },
+            "name": "SolarCellJV",
+            "more": {
+              "label_quantity": "cell_name"
+            },
+            "base_sections": [
+              "/packages/0/section_definitions/3"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "mongo": [
-                    "Mongo"
+                  "eln": [
+                    {
+                      "component": "FileEditQuantity"
+                    }
                   ],
-                  "elasticsearch": [
-                    "datasets.dataset_type"
-                  ]
-                },
-                "name": "dataset_type",
-                "description": "The type determined if a dataset is owned, i.e. was created by\nthe authors of the contained entries; or if a dataset is foreign,\ni.e. it was created by someone not necessarily related to the entries.",
-                "type": {
-                  "type_kind": "enum",
-                  "type_data": [
-                    "foreign",
-                    "owned"
-                  ]
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ]
-                },
-                "name": "query",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.JSON"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "mongo": [
-                    "Mongo"
-                  ]
-                },
-                "name": "entries",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "section_definitions",
-            "name": "CompatibleSectionDef",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "section_defs.definition_qualified_name"
-                  ]
-                },
-                "name": "definition_qualified_name",
-                "description": "The qualified name of the compatible section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "section_defs.definition_id"
-                  ]
-                },
-                "name": "definition_id",
-                "description": "The definition id of the compatible section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "section_defs.used_directly"
-                  ]
-                },
-                "name": "used_directly",
-                "description": "If the compatible section is directly used as base section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "name": "EntryArchiveReference",
-            "label": "ArchiveReference",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_reference"
-                  ]
-                },
-                "name": "target_reference",
-                "description": "The full url like reference of the the target.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_entry_id"
-                  ]
-                },
-                "name": "target_entry_id",
-                "description": "The id of the entry containing the target.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_mainfile"
-                  ]
-                },
-                "name": "target_mainfile",
-                "description": "The mainfile of the entry containing the target.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_upload_id"
-                  ]
-                },
-                "name": "target_upload_id",
-                "description": "The id of the upload containing the target.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_name"
-                  ]
-                },
-                "name": "target_name",
-                "description": "The name of the target quantity/section.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.target_path"
-                  ]
-                },
-                "name": "target_path",
-                "description": "The path of the target quantity/section in its archive.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.source_name"
-                  ]
-                },
-                "name": "source_name",
-                "description": "The name of the source (self) quantity/section in its archive.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.source_path"
-                  ]
-                },
-                "name": "source_path",
-                "description": "The path of the source (self) quantity/section in its archive.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references.source_quantity"
-                  ]
-                },
-                "name": "source_quantity",
-                "description": "A reference to the quantity definition that defines the reference",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 3,
-            "m_parent_sub_section": "section_definitions",
-            "name": "SearchableQuantity",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.id"
-                  ]
-                },
-                "name": "id",
-                "description": "The full identifier for this quantity that contains the path in the schema +\nschema name.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.definition"
-                  ]
-                },
-                "name": "definition",
-                "description": "A reference to the quantity definition.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.path_archive"
-                  ]
-                },
-                "name": "path_archive",
-                "description": "Path of the value within the archive.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.bool_value"
-                  ]
-                },
-                "name": "bool_value",
-                "description": "The value mapped as an ES boolean field.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.str_value",
-                    "search_quantities.str_value.keyword"
-                  ]
-                },
-                "name": "str_value",
-                "description": "The value mapped as an ES text and keyword field.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.int_value"
-                  ]
-                },
-                "name": "int_value",
-                "description": "The value mapped as an ES long number field.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.float_value"
-                  ]
-                },
-                "name": "float_value",
-                "description": "The value mapped as an ES double number field.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "float"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities.datetime_value"
-                  ]
-                },
-                "name": "datetime_value",
-                "description": "The value mapped as an ES date field.",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 4,
-            "m_parent_sub_section": "section_definitions",
-            "name": "RFC3161Timestamp",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "token_seed",
-                "description": "The entry hash used to get timestamp token.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "token",
-                "description": "The token returned by RFC3161 server.",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Bytes"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "tsa_server",
-                "description": "The address of RFC3161 server.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "timestamp",
-                "description": "The RFC3161 timestamp.",
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 5,
-            "m_parent_sub_section": "section_definitions",
-            "name": "EntryMetadata",
-            "label": "Metadata",
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "upload_id"
-                  ]
-                },
-                "name": "upload_id",
-                "description": "The persistent and globally unique identifier for the upload of the entry",
-                "categories": [
-                  "/packages/19/category_definitions/1"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "upload_name",
-                    "upload_name__suggestion"
-                  ]
-                },
-                "name": "upload_name",
-                "description": "The user provided upload name",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "auth_level": [
-                    "AuthLevel.admin"
-                  ],
-                  "elasticsearch": [
-                    "upload_create_time"
-                  ]
-                },
-                "name": "upload_create_time",
-                "description": "The date and time when the upload was created in nomad",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_id"
-                  ]
-                },
-                "name": "entry_id",
-                "description": "A persistent and globally unique identifier for the entry",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_name",
-                    "entry_name__suggestion",
-                    "entry_name.prefix"
-                  ]
-                },
-                "name": "entry_name",
-                "description": "A brief human readable name for the entry.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_type"
-                  ]
-                },
-                "name": "entry_type",
-                "description": "The main schema definition. This is the name of the section used for data.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "calc_id"
-                  ]
-                },
-                "name": "calc_id",
-                "description": "Legacy field name, use `entry_id` instead.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "virtual": true
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
-                "m_parent_sub_section": "quantities",
-                "name": "entry_hash",
-                "description": "A raw file content based checksum/hash",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "auth_level": [
-                    "AuthLevel.admin"
-                  ],
-                  "elasticsearch": [
-                    "entry_create_time"
-                  ]
-                },
-                "name": "entry_create_time",
-                "description": "The date and time when the entry was created in nomad",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3",
-                  "/packages/19/category_definitions/0"
-                ],
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
-                "m_parent_sub_section": "quantities",
-                "name": "last_edit_time",
-                "description": "The date and time the user metadata was last edited.",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 10,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "parser_name"
-                  ]
-                },
-                "name": "parser_name",
-                "description": "The NOMAD parser used for the last processing",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 11,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "mainfile",
-                    "mainfile.path",
-                    "mainfile__suggestion"
-                  ]
-                },
-                "name": "mainfile",
-                "description": "The path to the mainfile from the root directory of the uploaded files",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 12,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "mainfile_key",
-                    "mainfile_key.path"
-                  ]
-                },
-                "name": "mainfile_key",
-                "description": "Key used to differentiate between different *child entries* of an entry.\nFor parent entries and entries that do not have any children, the value should\nbe empty.",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 13,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "text_search_contents"
-                  ]
-                },
-                "name": "text_search_contents",
-                "description": "Contains text contents that should be considered when\ndoing free text queries for entries.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "*"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 14,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "files",
-                    "files.path"
-                  ]
-                },
-                "name": "files",
-                "description": "The paths to the files within the upload that belong to this entry.\nAll files within the same directory as the entry's mainfile are considered the\nauxiliary files that belong to the entry.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": [
-                  "0..*"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 15,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "pid"
-                  ]
-                },
-                "name": "pid",
-                "description": "The unique, sequentially enumerated, integer PID that was used in the legacy\nNOMAD CoE. It allows to resolve URLs of the old NOMAD CoE Repository.",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 16,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "raw_id"
-                  ]
-                },
-                "name": "raw_id",
-                "description": "The code specific identifier extracted from the entry's raw files by the parser,\nif supported.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 17,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "external_id"
-                  ]
-                },
-                "name": "external_id",
-                "description": "A user provided external id. Usually the id for an entry in an external database\nwhere the data was imported from.",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/0"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 18,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "published"
-                  ]
-                },
-                "name": "published",
-                "description": "Indicates if the entry is published",
-                "categories": [
-                  "/packages/19/category_definitions/1"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "default": false
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 19,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "auth_level": [
-                    "AuthLevel.admin"
-                  ],
-                  "elasticsearch": [
-                    "publish_time"
-                  ]
-                },
-                "name": "publish_time",
-                "description": "The date and time when the upload was published in nomad",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
-                "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 20,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "with_embargo"
-                  ]
-                },
-                "name": "with_embargo",
-                "description": "Indicated if this entry is under an embargo",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/3"
-                ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "default": false
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 21,
-                "m_parent_sub_section": "quantities",
-                "name": "embargo_length",
-                "description": "The length of the requested embargo period, in months",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                  "browser": [
+                    {
+                      "adaptor": "RawFileAdaptor"
+                    }
+                  ]
+                },
+                "name": "data_file",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "int"
+                  "type_data": "str"
                 }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 22,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "auth_level": [
-                    "AuthLevel.admin"
+                  "eln": [
+                    {
+                      "component": "BoolEditQuantity"
+                    }
                   ]
                 },
-                "name": "license",
-                "description": "A short license description (e.g. CC BY 4.0), that refers to the\nlicense of this entry.",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "certified_values",
+                "description": "TRUE if the IV data is measured by an independent and certification institute.\nIf your solar simulator is calibrated by a calibrated reference diode,\nthat does not count as a certified result.",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "bool"
                 },
-                "default": "CC BY 4.0"
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 23,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "processed"
+                  "eln": [
+                    {
+                      "component": "EnumEditQuantity",
+                      "props": {
+                        "suggestions": [
+                          "AIST, National Institute of Advanced Industrial Science and Technology",
+                          "CPVT, National Center of Supervision and Inspection on Solar Photovoltaic Products Quality of China",
+                          "CREST, Photovoltaic Meaasurement and calibration Laboratory at Universit of Loughborough",
+                          "CSIRO, PV Performance Lab at Monash University",
+                          "Fraunhofer ISE",
+                          "Institute of Metrology (NIM) of China",
+                          "KIER, Korea Institute of Energy Research",
+                          "NIM, National Institute of Metrology of China",
+                          "NREL",
+                          "National Institute ofMetrology, China",
+                          "Newport",
+                          "Newport Corporation",
+                          "PVEVL, National Central University, Taiwan",
+                          "Photovoltaic and Wind Power Systems Quality Test Center, Chinese Academy of Sciences",
+                          "Quality supervision\uff06Testing Center of Chemical\uff06Physical Power Sources of Information Industry",
+                          "SIMIT, Shanghai Institute of Microsystem and Information Technology",
+                          "Solar Power Lab at Arizona State University"
+                        ]
+                      }
+                    }
                   ]
                 },
-                "name": "processed",
-                "description": "Indicates that the entry is successfully processed.",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/3"
-                ],
+                "name": "certification_institute",
+                "description": "The name of the certification institute that has measured the certified device.\nExample:\nNewport\nNIM, National Institute of Metrology of China\nKIER, Korea Institute of Energy Research",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "bool"
+                  "type_data": "str"
                 },
-                "default": false
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 24,
+                "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "last_processing_time"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "last_processing_time",
-                "description": "The date and time of the last processing.",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
+                "name": "light_intensity",
+                "description": "The light intensity during the IV measurement\n- If there are uncertainties, only state the best estimate, e.g. write 100 and not 90-100.\n- Standard AM 1.5 illumination correspond to 100 mW/cm2\n- If you need to convert from illumination given in lux; at 550 nm, 1 mW/cm2 corresponds to 6830 lux. Be aware that the conversion change with the spectrum used. As a rule of thumb for general fluorescent/LED light sources, around 0.31mW corresponded to 1000 lux. If your light intensity is measured in lux, it probably means that your light spectra deviates quite a lot from AM 1.5, wherefore it is very important that you also specify the light spectra in the next column.",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Datetime"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "milliwatt / centimeter ** 2",
+                "default": 100.0
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 25,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "processing_errors"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "processing_errors",
-                "description": "Errors that occurred during processing",
+                "name": "open_circuit_voltage",
+                "description": "Open circuit voltage.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "shape": [
-                  "*"
-                ]
+                "shape": [],
+                "unit": "volt"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 26,
+                "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "nomad_version"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "nomad_version",
-                "description": "The NOMAD version used for the last processing",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
+                "name": "short_circuit_current_density",
+                "description": "Short circuit current density.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "milliampere / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 27,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "nomad_commit"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "nomad_commit",
-                "description": "The NOMAD commit used for the last processing",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
+                "name": "fill_factor",
+                "description": "Fill factor.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 28,
+                "m_parent_index": 7,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "comment"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "comment",
-                "description": "A user provided comment for this entry",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "efficiency",
+                "description": "Power conversion efficiency.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 29,
+                "m_parent_index": 8,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "references"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "references",
-                "description": "User provided references (URLs) for this entry",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "potential_at_maximum_power_point",
+                "description": "The potential at the maximum power point, Vmp.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "shape": [
-                  "0..*"
-                ]
+                "shape": [],
+                "unit": "volt"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 30,
+                "m_parent_index": 9,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "external_db"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "external_db",
-                "description": "The repository or external database where the original data resides",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "current_density_at_maximun_power_point",
+                "description": "The current density at the maximum power point, *Jmp*.",
                 "type": {
-                  "type_kind": "enum",
-                  "type_data": [
-                    "AFLOW",
-                    "EELS Data Base",
-                    "Kyoto Phonopy Database",
-                    "Materials Project",
-                    "OQMD",
-                    "The Perovskite Database Project"
-                  ]
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "milliampere / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 31,
+                "m_parent_index": 10,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "origin"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "origin",
-                "description": "A short human readable description of the entries origin. Usually it is the\nhandle of an external database/repository or the name of the main author.",
+                "name": "series_resistance",
+                "description": "The series resistance as extracted from the *J-V* curve.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "virtual": true
+                "shape": [],
+                "unit": "centimeter ** 2 * ohm"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 32,
+                "m_parent_index": 11,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "auth_level": [
-                    "AuthLevel.admin"
-                  ],
-                  "elasticsearch": [
-                    "main_author"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "main_author",
-                "description": "The main author of the entry",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "shunt_resistance",
+                "description": "The shunt resistance as extracted from the *J-V* curve.",
                 "type": {
-                  "type_kind": "User",
-                  "type_data": "User"
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "centimeter ** 2 * ohm"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 33,
+                "m_parent_index": 12,
                 "m_parent_sub_section": "quantities",
-                "name": "coauthors",
-                "description": "A user provided list of co-authors for the whole upload. These can view and edit the\nupload when in staging, and view it also if it is embargoed.",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "n_values",
                 "type": {
-                  "type_kind": "Author",
-                  "type_data": "Author"
+                  "type_kind": "python",
+                  "type_data": "int"
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "default": []
-              },
+                "virtual": true
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 25,
+            "m_parent_sub_section": "section_definitions",
+            "name": "SolarCellJVCurve",
+            "base_sections": [
+              "/packages/18/section_definitions/24"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 34,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
-                "name": "coauthor_groups",
-                "description": "A list of co-author groups for the whole upload, cf. `coauthors`.",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "m_annotations": {
+                  "eln": [
+                    {
+                      "component": "StringEditQuantity"
+                    }
+                  ]
+                },
+                "name": "cell_name",
+                "description": "Cell identification name.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "default": []
+                "shape": []
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 35,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
-                "name": "entry_coauthors",
-                "description": "A user provided list of co-authors specific for this entry. This is a legacy field,\nfor new uploads, coauthors should be specified on the upload level only.",
-                "categories": [
-                  "/packages/19/category_definitions/2"
-                ],
+                "name": "current_density",
+                "description": "Current density array of the *JV* curve.",
                 "type": {
-                  "type_kind": "Author",
-                  "type_data": "Author"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
                 "shape": [
-                  "0..*"
+                  "n_values"
                 ],
-                "default": []
+                "unit": "milliampere / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 36,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
-                "name": "reviewers",
-                "description": "A user provided list of reviewers. Reviewers can see the whole upload, also if\nit is unpublished or embargoed",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "voltage",
+                "description": "Voltage array of the of the *JV* curve.",
                 "type": {
-                  "type_kind": "User",
-                  "type_data": "User"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
                 "shape": [
-                  "0..*"
-                ],
-                "default": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 37,
-                "m_parent_sub_section": "quantities",
-                "name": "reviewer_groups",
-                "description": "A list of reviewer groups, cf. `reviewers`.",
-                "categories": [
-                  "/packages/19/category_definitions/1",
-                  "/packages/19/category_definitions/0"
+                  "n_values"
                 ],
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                "unit": "volt"
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 26,
+            "m_parent_sub_section": "section_definitions",
+            "m_annotations": {
+              "eln": [
+                {
+                  "lane_width": "600px"
+                }
+              ],
+              "plotly_graph_object": [
+                {
+                  "data": {
+                    "x": "#photon_energy_array",
+                    "y": "#raw_eqe_array"
+                  }
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "default": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 38,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "authors"
-                  ]
+                {
+                  "data": {
+                    "x": "#raw_photon_energy_array",
+                    "y": "#raw_eqe_array"
+                  }
                 },
-                "name": "authors",
-                "description": "All authors (main author and co-authors)",
-                "type": {
-                  "type_kind": "Author",
-                  "type_data": "Author"
+                {
+                  "data": {
+                    "x": "#raw_wavelength_array",
+                    "y": "#raw_eqe_array"
+                  }
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "virtual": true
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 39,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "writers"
-                  ]
+                {
+                  "data": {
+                    "x": "#photon_energy_array",
+                    "y": "#eqe_array"
+                  }
                 },
-                "name": "writers",
-                "description": "All writers (main author, upload coauthors)",
-                "type": {
-                  "type_kind": "User",
-                  "type_data": "User"
+                {
+                  "data": {
+                    "x": "#wavelength_array",
+                    "y": "#eqe_array"
+                  }
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "virtual": true
-              },
+                {
+                  "data": {
+                    "x": "#photon_energy_array",
+                    "y": "#eqe_array"
+                  }
+                }
+              ]
+            },
+            "name": "SolarCellEQE",
+            "base_sections": [
+              "/packages/0/section_definitions/3"
+            ],
+            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 40,
+                "m_parent_index": 0,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "writer_groups"
+                  "eln": [
+                    {
+                      "component": "FileEditQuantity"
+                    }
+                  ],
+                  "browser": [
+                    {
+                      "adaptor": "RawFileAdaptor"
+                    }
                   ]
                 },
-                "name": "writer_groups",
-                "description": "Groups with write access (= coauthor groups).",
+                "name": "eqe_data_file",
+                "description": "Drop here your eqe file and click save for processing.",
                 "type": {
                   "type_kind": "python",
                   "type_data": "str"
-                },
-                "shape": [
-                  "0..*"
-                ],
-                "virtual": true
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 41,
-                "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "viewers"
-                  ]
-                },
-                "name": "viewers",
-                "description": "All viewers (main author, upload coauthors, and reviewers)",
-                "type": {
-                  "type_kind": "User",
-                  "type_data": "User"
-                },
-                "shape": [
-                  "0..*"
-                ],
-                "virtual": true
+                }
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 42,
+                "m_parent_index": 1,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "viewer_groups"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "viewer_groups",
-                "description": "Groups with read access (= coauthor groups + reviewer groups).",
+                "name": "header_lines",
+                "description": "Number of header lines in the file. Edit in case your file has a header.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "int64"
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "virtual": true
+                "default": 0
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 43,
+                "m_parent_index": 2,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "datasets"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "datasets",
-                "description": "A list of user curated datasets this entry belongs to.",
-                "categories": [
-                  "/packages/19/category_definitions/2",
-                  "/packages/19/category_definitions/0"
-                ],
+                "name": "light_bias",
+                "description": "The light intensity of any bias light during the EQE measurement.",
                 "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/19/section_definitions/0"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "shape": [
-                  "0..*"
-                ],
-                "default": []
+                "shape": [],
+                "unit": "milliwatt / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 44,
+                "m_parent_index": 3,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "domain"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "domain",
-                "description": "The material science domain",
+                "name": "bandgap_eqe",
+                "description": "Bandgap derived from the EQE spectrum.",
                 "type": {
-                  "type_kind": "enum",
-                  "type_data": [
-                    "dft",
-                    "ems",
-                    "nexus"
-                  ]
-                }
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "electron_volt"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 45,
+                "m_parent_index": 4,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "n_quantities"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "n_quantities",
-                "description": "Number of metainfo quantities parsed from the entry.",
+                "name": "integrated_jsc",
+                "description": "The integrated short circuit current density $J_{SC}$ from the product of the EQE spectrum\nwith the *AM 1.5G* sun spectrum.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "default": 0
+                "shape": [],
+                "unit": "milliampere / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 46,
+                "m_parent_index": 5,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "quantities",
-                    "quantities.path"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "quantities",
-                "description": "All quantities that are used by this entry.",
+                "name": "integrated_j0rad",
+                "description": "The integrated $J_{0, Rad}$ derived from the EQE data.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "shape": [
-                  "0..*"
-                ]
+                "shape": [],
+                "unit": "milliampere / centimeter ** 2"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 47,
+                "m_parent_index": 6,
                 "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "sections"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "sections",
-                "description": "All sections that are present in this entry. This field is deprecated and will be removed.",
+                "name": "voc_rad",
+                "description": "Radiative $V_{OC}$ derived from the EQE data in V.",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "shape": [
-                  "*"
-                ]
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "entry_timestamp",
-                "description": "A timestamp based on RFC3161.",
-                "sub_section": "/packages/19/section_definitions/4"
+                "shape": [],
+                "unit": "volt"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 7,
+                "m_parent_sub_section": "quantities",
                 "m_annotations": {
-                  "elasticsearch": [
-                    "optimade"
+                  "eln": [
+                    {
+                      "component": "NumberEditQuantity"
+                    }
                   ]
                 },
-                "name": "optimade",
-                "description": "Metadata used for the optimade API.",
-                "sub_section": "/packages/29/section_definitions/1"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "sub_sections",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "section_defs"
-                  ]
+                "name": "urbach_energy",
+                "description": "Urbach energy fitted from the eqe in eV.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "name": "section_defs",
-                "description": "All sections that are compatible with the present sections in this entry.",
-                "sub_section": "/packages/19/section_definitions/1",
-                "repeats": true
+                "shape": [],
+                "unit": "electron_volt"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "sub_sections",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "entry_references"
-                  ]
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 8,
+                "m_parent_sub_section": "quantities",
+                "name": "urbach_energy_fit_std_dev",
+                "description": "Standard deviation of the fitted Urbach energy parameter from the eqe in eV.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "name": "entry_references",
-                "sub_section": "/packages/19/section_definitions/2",
-                "repeats": true
+                "shape": [],
+                "unit": "electron_volt"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "sub_sections",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "search_quantities"
-                  ]
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 9,
+                "m_parent_sub_section": "quantities",
+                "name": "n_values",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "int"
                 },
-                "name": "search_quantities",
-                "sub_section": "/packages/19/section_definitions/3",
-                "repeats": true
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 6,
-            "m_parent_sub_section": "section_definitions",
-            "name": "EntryArchive",
-            "label": "Entry",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
-            "quantities": [
+                "virtual": true
+              },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 10,
                 "m_parent_sub_section": "quantities",
-                "name": "entry_id",
-                "description": "The unique primary id for this entry.",
+                "name": "n_raw_values",
                 "type": {
                   "type_kind": "python",
-                  "type_data": "str"
+                  "type_data": "int"
                 },
                 "virtual": true
               },
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
+                "m_parent_index": 11,
                 "m_parent_sub_section": "quantities",
-                "name": "processing_logs",
-                "description": "The processing logs for this entry as a list of structlog entries.",
+                "name": "raw_eqe_array",
+                "description": "EQE array of the spectrum",
                 "type": {
-                  "type_kind": "custom",
-                  "type_data": "nomad.metainfo.data_type.Any"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
                 "shape": [
-                  "0..*"
+                  "n_raw_values"
                 ]
-              }
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "run",
-                "sub_section": "/packages/11/section_definitions/3",
-                "repeats": true
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "measurement",
-                "sub_section": "/packages/17/section_definitions/3",
-                "repeats": true
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "sub_sections",
-                "name": "data",
-                "sub_section": "/packages/25/section_definitions/1"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "sub_sections",
-                "name": "workflow",
-                "categories": [
-                  "/packages/27/category_definitions/0"
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 12,
+                "m_parent_sub_section": "quantities",
+                "name": "raw_photon_energy_array",
+                "description": "Raw Photon energy array of the eqe spectrum",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_raw_values"
                 ],
-                "sub_section": "/packages/6/section_definitions/34",
-                "repeats": true
+                "unit": "electron_volt"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "sub_sections",
-                "name": "workflow2",
-                "categories": [
-                  "/packages/27/category_definitions/0"
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 13,
+                "m_parent_sub_section": "quantities",
+                "name": "raw_wavelength_array",
+                "description": "Raw wavelength array of the eqe spectrum",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_raw_values"
                 ],
-                "sub_section": "/packages/28/section_definitions/3"
+                "unit": "nanometer"
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "sub_sections",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "metadata"
-                  ]
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 14,
+                "m_parent_sub_section": "quantities",
+                "name": "eqe_array",
+                "description": "EQE array of the spectrum",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "name": "metadata",
-                "categories": [
-                  "/packages/27/category_definitions/0"
-                ],
-                "sub_section": "/packages/19/section_definitions/5"
+                "shape": [
+                  "n_values"
+                ]
               },
               {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "sub_sections",
-                "m_annotations": {
-                  "elasticsearch": [
-                    "results"
-                  ]
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 15,
+                "m_parent_sub_section": "quantities",
+                "name": "wavelength_array",
+                "description": "Interpolated/extrapolated wavelength array with *E<sub>u</sub>* of the eqe spectrum",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "name": "results",
-                "categories": [
-                  "/packages/27/category_definitions/0"
+                "shape": [
+                  "n_values"
                 ],
-                "sub_section": "/packages/13/section_definitions/85"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 7,
-                "m_parent_sub_section": "sub_sections",
-                "name": "tabular_tree",
-                "sub_section": "/packages/18/section_definitions/4",
-                "repeats": false
+                "unit": "nanometer"
               },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "sub_sections",
-                "name": "definitions",
-                "sub_section": "/packages/30/section_definitions/4"
-              }
-            ]
-          }
-        ],
-        "category_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Category",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "category_definitions",
-            "name": "EditableUserMetadata",
-            "description": "NOMAD entry metadata quantities that can be edited by the user before or after publish."
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Category",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "category_definitions",
-            "name": "MongoUploadMetadata",
-            "description": "The field is defined on the Upload mongo document."
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Category",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "category_definitions",
-            "name": "MongoEntryMetadata",
-            "description": "The field is defined on the Entry mongo document."
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Category",
-            "m_parent_index": 3,
-            "m_parent_sub_section": "category_definitions",
-            "name": "MongoSystemMetadata",
-            "description": "The field is managed directly by the system/process (or derived from data managed by the\nsystem/process), and should never be updated from an :class:`EntryMetadata` object."
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Category",
-            "m_parent_index": 4,
-            "m_parent_sub_section": "category_definitions",
-            "name": "DomainMetadata",
-            "description": "NOMAD entry quantities that are determined by the uploaded data."
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 20,
-        "m_parent_sub_section": "packages",
-        "name": "nomad.parsing.tabular",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "name": "TableData",
-            "description": "Table data",
-            "base_sections": [
-              "/packages/25/section_definitions/0"
-            ],
-            "quantities": [
               {
                 "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
+                "m_parent_index": 16,
                 "m_parent_sub_section": "quantities",
-                "m_annotations": {
-                  "eln": [
-                    {
-                      "component": "BoolEditQuantity"
-                    }
-                  ]
-                },
-                "name": "fill_archive_from_datafile",
-                "description": "While checked, it allows the parser to fill all the Quantities from the data file.\nBe cautious though! as checking this box will cause overwriting your fields with data parsed from the data file",
+                "name": "photon_energy_array",
+                "description": "Interpolated/extrapolated photon energy array with a *E<sub>u</sub>*  of the eqe spectrum",
                 "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
+                  "type_kind": "numpy",
+                  "type_data": "float64"
                 },
-                "default": true
+                "shape": [
+                  "n_values"
+                ],
+                "unit": "electron_volt"
               }
             ]
           }
@@ -46417,7 +45314,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 21,
+        "m_parent_index": 19,
         "m_parent_sub_section": "packages",
         "name": "electronicparsers.vasp.metainfo.vasp",
         "section_definitions": [
@@ -46665,7 +45562,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 22,
+        "m_parent_index": 20,
         "m_parent_sub_section": "packages",
         "name": "electronicparsers.vasp.metainfo.vasp_incars",
         "section_definitions": [
@@ -46686,7 +45583,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ADDGRID",
                 "description": "ADDGRID determines whether an additional support grid is used for the evaluation\nof the augmentation charges.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -46701,7 +45598,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AEXX",
                 "description": "AEXX specifies the fraction of exact exchange in a Hartree-Fock/DFT hybrid\nfunctional type calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46716,7 +45613,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AGGAC",
                 "description": "AGGAC specifies the fraction of gradient corrections to the correlation in a\nHartree-Fock/DFT hybrid functional type calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46731,7 +45628,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AGGAX",
                 "description": "AGGAX specifies the fraction of gradient corrections to the exchange in a Hartree-\nFock/DFT hybrid functional type calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46746,7 +45643,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ALDAC",
                 "description": "ALDAC specifies the fraction of LDA correlation in a Hartree-Fock/DFT hybrid\nfunctional type calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46761,7 +45658,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ALGO",
                 "description": "Option to specify the electronic minimisation algorithm (as of VASP.4.5) and/or to\nselect the type of GW calculations.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -46776,7 +45673,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AMIN",
                 "description": "AMIN specifies the minimal mixing parameter in Kerker's initial approximation to\nthe charge dielectric function used in the Broyden / Pulay mixing scheme (IMIX=4,\nINIMIX=1).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46791,7 +45688,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AMIX",
                 "description": "AMIX specifies the linear mixing parameter.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46806,7 +45703,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_AMIX_MAG",
                 "description": "AMIX_MAG linear mixing parameter for the magnetization density.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46821,7 +45718,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ANDERSEN_PROB",
                 "description": "ANDERSEN_PROB sets the collision probability for the Anderson thermostat (in case\nVASP was compiled with the flag -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46836,7 +45733,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ANTIRES",
                 "description": "The flag ANTIRES determines whether the Tamm-Dancoff approximation is used or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46851,7 +45748,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_APACO",
                 "description": "APACO sets the maximum distance in the evaluation of the pair-correlation function\n(in Angstroms).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46866,7 +45763,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_BMIX",
                 "description": "BMIX sets the cutoff wave vector for Kerker mixing scheme (IMIX = 1 and / or\nINIMIX = 1).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46881,7 +45778,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_BMIX_MAG",
                 "description": "BMIX_MAG sets the cutoff wave vector for Kerker mixing scheme (IMIX=1 and/or\nINIMIX=1) for the magnetization density.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46896,7 +45793,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CH_LSPEC",
                 "description": "This flag controls whether the imaginary part of the dielectric function for a\nselected core electron is calculated and written to the OUTCAR file or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -46911,7 +45808,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CH_NEDOS",
                 "description": "This tag specifies the number of frequency (energy) grid points on the x-axis in\nthe calculation of the dielectric function for XAS spectra.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46926,7 +45823,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CH_SIGMA",
                 "description": "This tag specifies the broadening in eV of the imaginary dielectric function for a\ncore electron.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46941,7 +45838,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CLL",
                 "description": "CLL selects the angular (l) quantum number of the excited electron when using\nICORELEVEL=2.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46956,7 +45853,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CLN",
                 "description": "CLN selects the main quantum number of the excited electron when using\nICORELEVEL=2.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46971,7 +45868,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CLNT",
                 "description": "CLNT selects for which species the core levels are calculated using the tag\nICORELEVEL.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -46986,7 +45883,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CLZ",
                 "description": "CLZ selects the electron count of the excited electron when using ICORELEVEL=2.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47001,7 +45898,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CMBJ",
                 "description": "defines the _c_ parameter in the modified Becke-Johnson meta-GGA potential. NOTE:\nEither specify a single value, or one value per atomic type (FIXME)",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47016,7 +45913,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CMBJA",
                 "description": "sets the $\\alpha$ parameter in the modified Becke-Johnson meta-GGA potential.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47031,7 +45928,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CMBJB",
                 "description": "sets the $\\eta$ parameter in the modified Becke-Johnson meta-GGA potential.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47046,7 +45943,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_CSHIFT",
                 "description": "CSHIFT sets the (small) complex shift $\\eta$ in the Kramers-Kronig transformation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47061,7 +45958,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_DEPER",
                 "description": "DEPER specifies a relative stopping criterion for the optimization of an\neigenvalue.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47076,7 +45973,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_DIMER_DIST",
                 "description": "The flag DIMER_DIST defines the step size for the numerical differentiation (in\nAngstrongs) for the Improved Dimer Method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47091,7 +45988,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_DIPOL",
                 "description": "Specifies the center of the cell in direct lattice coordinates with respect to\nwhich the total dipole-moment in the cell is calculated.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47108,7 +46005,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_DQ",
                 "description": "Step size for the finite difference _k_-space derivative in the linear response\ncalculation of chemical shifts. Typical values for DQ are in the range [0.001 -\n0.003]. The default is often sufficient",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47123,7 +46020,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EBREAK",
                 "description": "EBREAK specifies an absolute stopping criterion for the optimization of an\neigenvalue.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47138,7 +46035,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EDIFF",
                 "description": "EDIFF specifies the global break condition for the electronic SC-loop.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47153,7 +46050,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EDIFFG",
                 "description": "EDIFFG defines the break condition for the ionic relaxation loop.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47168,7 +46065,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EFIELD",
                 "description": "EFIELD controls the magnitude of the applied electric force field.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47183,7 +46080,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EFIELD_PEAD",
                 "description": "EFIELD_PEAD specifies the homogeneous electric field in the electric enthalpy\nfunctional used to compute the  self-consistent response to finite electric\nfields.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47200,7 +46097,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EINT",
                 "description": "Specifies the energy range of the bands that are used for the evaluation of the\npartial charge density needed in Band decomposed charge densities. Check also\nNBMOD and IBAND.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47217,7 +46114,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EMAX",
                 "description": "EMAX specifies the  upper boundary of the energy range for the evaluation of the\nDOS.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47232,7 +46129,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EMIN",
                 "description": "specifies the lower boundary of the energy range for the evaluation of the DOS.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47247,7 +46144,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENAUG",
                 "description": "ENAUG specifies the cut-off energy of the plane wave representation of the\naugmentation charges in eV.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47262,7 +46159,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENCUT",
                 "description": "ENCUT specifies the cutoff energy for the planewave basis set in eV.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47277,7 +46174,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENCUTFOCK",
                 "description": "The ENCUTFOCK tag sets the energy cutoff that determines the FFT grids used by the\nHartree-Fock routines. WARNING: The flag ENCUTFOCK is no longer supported in\nVASP.5.2.4 and newer versions. Please use PRECFOCK instead.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47292,7 +46189,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENCUTGW",
                 "description": "The tag ENCUTGW sets the energy cutoff for response function. It controls the\nbasis set for the response functions  in exactly the same manner as ENCUT does for\nthe orbitals.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47307,7 +46204,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENCUTGWSOFT",
                 "description": "The flag ENCUTGWSOFT sets the energy cutoff for response function, such that it\nallows to truncate the Coulomb kernel slowly between the energy specified by\nENCUTGWSOFT and ENCUTGW.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47322,7 +46219,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENINI",
                 "description": "ENINI controls the cutoff during the initial (steepest descent) phase for\nIALGO=48.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47337,7 +46234,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EPSILON",
                 "description": "EPSILON sets the dielectric constant of the medium.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47352,7 +46249,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EVENONLY",
                 "description": "EVENONLY=.TRUE. selects a subset of k-points for the representation of the Fock\nexchange potential, with $C_1=C_2=C_3=1$, and $n_1+n_2+n_3$ even.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -47367,7 +46264,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_EVENONLYGW",
                 "description": "EVENONLYGW allows to restrict the k-points in the evaluation of response functions\n(in GW calculations) to even values.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -47382,7 +46279,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_FERDO",
                 "description": "FERDO sets the occupancies of the states in the down-spin channel for ISMEAR=-2\nand ISPIN=2.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47399,7 +46296,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_FERWE",
                 "description": "FERWE sets the occupancies of the states for  ISMEAR=-2.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47416,7 +46313,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_FINDIFF",
                 "description": "The flag DIMER_DIST defines whether a forward (FINDIFF=1) or a central (FINDIFF=2)\ndifference formula for the numerical differentiation to compute the curvature\nalong the dimer direction is used in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47431,7 +46328,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_GGA",
                 "description": "GGA specifies the type of generalized-gradient-approximation one wishes to use.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -47446,7 +46343,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_GGA_COMPAT",
                 "description": "This flag restores the full lattice symmetry for gradient corrected functionals.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -47461,7 +46358,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HFLMAX",
                 "description": "To be compatible w.r.t. old releases, VASP also reads the flag HFLMAX to the same\neffect as LMAXFOCK.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47476,7 +46373,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HFRCUT",
                 "description": "HFRCUT specifies the spherical cutoff radius for the potential kernel in hybrid\nfunctionals.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47491,7 +46388,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HFSCREEN",
                 "description": "HFSCREEN specifies the range-separation parameter in range separated hybrid\nfunctionals.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47506,7 +46403,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HILLS_BIN",
                 "description": "HILLS_BIN sets the number of steps after which the bias potential is updated in a\nmetadynamics run (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47521,7 +46418,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HILLS_H",
                 "description": "HILLS_H specifies the height of the Gaussian hill (in eV) used in metadynamics (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47536,7 +46433,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HILLS_W",
                 "description": "HILLS_W specifies the width of the Gaussian hill (in units of the corresponding\ncollective variable) used in metadynamics (in case VASP was compiled with\n-Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47551,7 +46448,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_HITOLER",
                 "description": "HITOLER specifies the convergence parameter for iterative Hirschfeld partitioning\n(DFT-TS/HI).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47566,7 +46463,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_I_CONSTRAINED_M",
                 "description": "I_CONSTRAINED_M switches on the constrained local moments approach.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47581,7 +46478,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IALGO",
                 "description": "IALGO selects the algorithm used to optimize the orbitals. WARNING",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47596,7 +46493,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IBAND",
                 "description": "Controls which bands are used in the calculation of Band decomposed charge\ndensities. Check also NBMOD and EINT.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47613,7 +46510,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IBRION",
                 "description": "IBRION determines how the ions are updated and moved.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47628,7 +46525,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ICHARG",
                 "description": "ICHARG determines how VASP constructs the <i>initial</i> charge density.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47643,7 +46540,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ICHIBARE",
                 "description": "determines the order of the finite difference stencil used to calculate the\nmagnetic susceptibility.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47658,7 +46555,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ICORELEVEL",
                 "description": "ICORELEVEL controls whether the core energies are explicitely calculated or not\nand how they are calculated.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47673,7 +46570,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IDIPOL",
                 "description": "IDIPOL switches on monopole/dipole and quadrupole corrections to the total energy.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47688,7 +46585,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IEPSILON",
                 "description": "The flag IEPSILON determines along which Cartesien the E field is applied.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47703,7 +46600,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IGPAR",
                 "description": "This tag specifies the socalled parallel or  $G_{||}$ direction in the integration\nover the reciprocal space unit cell needed for LCALCPOL.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47718,7 +46615,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IMAGES",
                 "description": "IMAGES defines the number of interpolated geometries between the initial and final\nstate in Elastic Band calculations",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47733,7 +46630,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IMIX",
                 "description": "IMIX specifies the type of mixing.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47748,7 +46645,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_INCREM",
                 "description": "INCREM controls the transformation velocity in the slow-growth approach (in case\nVASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47765,7 +46662,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_INIMIX",
                 "description": "INIMIX determines the functional form of the initial mixing matrix in the Broyden\nscheme (IMIX=4).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47780,7 +46677,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_INIWAV",
                 "description": "INIWAV specifies how to set up the initial orbitals in case ISTART=0.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47795,7 +46692,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IPEAD",
                 "description": "IPEAD specifies the order of the finite difference stencil used to compute the\nderivative of the cell-periodic part of the orbitals w.r.t. **k** (LPEAD=.TRUE.),\nand the derivative of the polarization w.r.t. the orbitals,  for (LCALCEPS=.TRUE.,\nor EFIELD_PEAD$\\not=$0).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47810,7 +46707,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ISIF",
                 "description": "ISIF determines whether the stress tensor is calculated and which principal\ndegrees-of-freedom are allowed to change in relaxation and molecular dynamics\nruns.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47825,7 +46722,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ISMEAR",
                 "description": "ISMEAR determines how the partial occupancies $f_{n\\mathbf{k}}$  are set for each\norbital. SIGMA  determines the width of the smearing in eV.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47840,7 +46737,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ISPIN",
                 "description": "ISPIN specifies spin polarization.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47855,7 +46752,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ISTART",
                 "description": "ISTART determines whether or not to read the WAVECAR file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47870,7 +46767,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ISYM",
                 "description": "ISYM determines the way VASP treats symmetry.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47885,7 +46782,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IVDW",
                 "description": "This tag controls whether vdW corrections are calculated or not. If they are\ncalculated IVDW controls how they are calculated.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47900,7 +46797,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_IWAVPR",
                 "description": "IWAVPR determines how orbitals and/or charge densities are extrapolated from one\nionic configuration to the next configuration.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47915,7 +46812,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KBLOCK",
                 "description": "After KBLOCK*NBLOCK ionic steps the averaged pair correlation function and DOS are\nwritten to the files PCDAT and DOSCAR. More details can be found on the page\ndescribing the tag NBLOCK.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47930,7 +46827,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KGAMMA",
                 "description": "Determines whether the _k_-points (determined by the tag KSPACING if KPOINTS file\nis not present) are center around (KGAMMA=.TRUE.), or shifted away\n(KGAMMA=.FALSE.) from the $\\Gamma$ point.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -47945,7 +46842,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KPAR",
                 "description": "KPAR determines the number of **k**-points that are to be treated in parallel\n(available as of VASP.5.3.2).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47960,7 +46857,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KPOINT_BSE",
                 "description": "The flag KPOINT_BSE allows to calculate the dielectric matrix at one of the\nkpoints used to sample the Brillouin zone. NOTE: Either specify one or three\nintegers (FIXME)",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47975,7 +46872,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KPUSE",
                 "description": "Specifies which k-points are used in the evaluation of the partial dos (Band\ndecomposed charge densities).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -47992,7 +46889,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_KSPACING",
                 "description": "The tag KSPACING determines the number of k-points if the KPOINTS file is not\npresent.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48007,7 +46904,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LADDER",
                 "description": "Controls whether the ladder diagrams are included in the BSE calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48022,7 +46919,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LAECHG",
                 "description": "When LAECHG=.TRUE. the all-electron charge density will be reconstructed\nexplicitly and written out to file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48037,7 +46934,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LAMBDA",
                 "description": "LAMBDA sets the weight with which the penalty terms of the constrained local\nmoment approach enter into the total energy expression and the Hamiltonian.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48052,7 +46949,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LANGEVIN_GAMMA",
                 "description": "LANGEVIN_GAMMA specifies the friction coefficients (in ps$^{-1}$) for atomic\ndegrees-of-freedom when using a Langevin thermostat (in case VASP was compiled\nwith -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48069,7 +46966,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LANGEVIN_GAMMA_L",
                 "description": "LANGEVIN_GAMMA_L specifies the friction coefficient (in ps$^{-1}$) for lattice\ndegrees-of-freedom in case of Parrinello-Rahman dynamics (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48084,7 +46981,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LASPH",
                 "description": "include non-spherical contributions related to the gradient of the density in the\nPAW spheres.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48099,7 +46996,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LASYNC",
                 "description": "This tag controls the overlap in communication.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48114,7 +47011,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LATTICE_CONSTRAINTS",
                 "description": "The tag LATTICE_CONSTRAINTS determines whether the lattice dynamics are released\n(LATTICE_CONSTRAINTS=.TRUE.) in the given directions or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48131,7 +47028,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LBERRY",
                 "description": "This tag is used in the the evaluation of the Berry phase expression for the\nelectronic polarization of an insulating system.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48146,7 +47043,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LBLUEOUT",
                 "description": "for LBLUEOUT=.TRUE., VASP writes output for the free-energy gradient calculation\nto the REPORT-file (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48161,7 +47058,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LBONE",
                 "description": "LBONE adds the small B-component to the chemical shift tensor.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48176,7 +47073,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LCALCEPS",
                 "description": "for LCALCEPS=.TRUE. the macroscopic ion-clamped static dielectric tensor, Born\neffective charge tensors, and the ion-clamped piezoelectric tensor of the system\nare determined from the response to finite electric fields.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48191,7 +47088,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LCALCPOL",
                 "description": "LCALCPOL=.TRUE. switches on the evaluation of the Berry phase expressions for the\nmacroscopic electronic polarization in accordance with the so-called Modern Theory\nof Polarization.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48206,7 +47103,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LCHARG",
                 "description": "LCHARG determines whether the charge densities (files CHGCAR and CHG) are written.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48221,7 +47118,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LCHIMAG",
                 "description": "calculate the chemical shifts by means of linear response.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48236,7 +47133,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LCORR",
                 "description": "Controls whether Harris corrections are calculated or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48251,7 +47148,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAU",
                 "description": "LDAU=.TRUE. switches on the L(S)DA+U.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48266,7 +47163,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAUJ",
                 "description": "LDAUJ specifies the strength of the effective on-site exchange interactions.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48283,7 +47180,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAUL",
                 "description": "LDAUL specifies the _l_-quantum number for which the on-site interaction is added.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48300,7 +47197,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAUPRINT",
                 "description": "LDAUPRINT controls the verbosity of the L(S)DA+U routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48315,7 +47212,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAUTYPE",
                 "description": "LDAUTYPE specifies which type of L(S)DA+U approach will be used.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48330,7 +47227,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDAUU",
                 "description": "LDAUU specifies the strength of the effective on-site Coulomb interactions.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48347,7 +47244,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDIAG",
                 "description": "This tag determines whether a subspace diagonalization is performed or not within\nthe main algorithm selected by IALGO.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48362,7 +47259,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LDIPOL",
                 "description": "LDIPOL switches on corrections to the potential and forces in VASP. Can be applied\nfor charged molecules and  molecules and slabs with a net dipole moment.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48377,7 +47274,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LEFG",
                 "description": "The LEFG Computes the Electric Field Gradient at positions of the atomic nuclei.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48392,7 +47289,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LELF",
                 "description": "LELF determines whether to create an ELFCAR file or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48407,7 +47304,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LEPSILON",
                 "description": "LEPSILON=.TRUE. determines the static dielectric matrix, ion-clamped piezoelectric\ntensor and the Born effective charges using density functional perturbation\ntheory.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48422,7 +47319,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LFOCKAEDFT",
                 "description": "LFOCKAEDFT forces VASP to use the same charge augmentation for the Hartree and DFT\nexchange correlation part as is used in the Fock exchange and the many body beyond\nDFT methods, such as RPA, MP2 etc.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48437,7 +47334,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LHARTREE",
                 "description": "Controls whether the bubble diagrams are included in the BSE calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48452,7 +47349,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LHFCALC",
                 "description": "LHFCALC specifies whether Hartree-Fock/DFT hybrid functional type calculations are\nperformed.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48467,7 +47364,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LHYPERFINE",
                 "description": "compute the hyperfine tensors at the atomic sites (available as of vasp.5.3.2).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48482,7 +47379,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LKPROJ",
                 "description": "switches on the **k**-point projection scheme.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48497,7 +47394,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LLRAUG",
                 "description": "LLRAUG calculates the two-center contributions to the chemical shift tensor.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48512,7 +47409,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMAXFOCK",
                 "description": "LMAXFOCK sets the maximum angular momentum quantum number _L_ for the augmentation\nof charge densities in Hartree-Fock type routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48527,7 +47424,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMAXFOCKAE",
                 "description": "NMAXFOCKAE and LMAXFOCKAE determine whether the overlap densities in the Fock\nexchange and correlated wave function methods are accurately reconstructed on the\nplane wave grid. This flag generally only applies to the Fock-exchange part as\nwell as many-body post DFT methods (GW, RPA, MP2, etc.).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48542,7 +47439,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMAXMIX",
                 "description": "LMAXMIX controls up to which l-quantum number the one-center PAW charge densities\nare passed through the charge density mixer and written to the CHGCAR file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48557,7 +47454,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMAXPAW",
                 "description": "LMAXPAW sets the maximum _l_-quantum number for the evaluation of the one-center\nterms on the radial support grids in the PAW method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48572,7 +47469,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMAXTAU",
                 "description": "LMAXTAU is the maximum _l_-quantum number included in the PAW one-center expansion\nof the kinetic energy density.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -48587,7 +47484,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMIXTAU",
                 "description": "send the kinetic energy density through the density mixer as well.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48602,7 +47499,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LMONO",
                 "description": "LMONO switches on monopole-monopole corrections for the total energy.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48617,7 +47514,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LNABLA",
                 "description": "LNABLA=.TRUE. evaluates the transversal expression for the frequency dependent\ndielectric matrix.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48632,7 +47529,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LNMR_SYM_RED",
                 "description": "discard symmetry operations that are not consistent with the way _k_-space\nderivative are calculated in the linear response calculations of chemical shifts.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48647,7 +47544,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LNONCOLLINEAR",
                 "description": "LNONCOLLINEAR specifies whether fully non-collinear magnetic calculations are\nperformed.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48662,7 +47559,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LOCPROJ",
                 "description": "by means of the LOCPROJ-tag one may specify a (set of) local function(s) on which\nthe orbitals are to be projected. These projections are written to the PROJCAR,\nLOCPROJ, and vasprun.xml files.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48677,7 +47574,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LOPTICS",
                 "description": "LOPTICS=.TRUE. calculates the frequency dependent dielectric matrix after the\nelectronic ground state has been determined.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48692,7 +47589,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LORBIT",
                 "description": "LORBIT, together with an appropriate RWIGS, determines whether the PROCAR or\nPROOUT files are written.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48707,7 +47604,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LORBMOM",
                 "description": "LORBMOM specifies whether the orbital moments are written out or not (in a\ncalculation using LSORBIT=.TRUE.).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48722,7 +47619,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LPARD",
                 "description": "Determines whether partial (band or k-point decomposed) charge densities are\nevaluated. See also 'Band-decomposed charge densities' .",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48737,7 +47634,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LPEAD",
                 "description": "for LPEAD=.TRUE., the derivative of the cell-periodic part of the orbitals w.r.t.\n**k**  is calculated using finite differences.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48752,7 +47649,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LPLANE",
                 "description": "LPLANE switches on the plane-wise data distribution in real space.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48767,7 +47664,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LREAL",
                 "description": "LREAL determines whether the projection operators are evaluated in real-space or\nin reciprocal space.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48782,7 +47679,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LRPA",
                 "description": "LRPA=.TRUE. includes local field effect on the Hartree level only.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48797,7 +47694,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSCAAWARE",
                 "description": "LSCAAWARE controls the distribution of the Hamilton matrix.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48812,7 +47709,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSCALAPACK",
                 "description": "LSCALAPACK controls the use of scaLAPACK.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48827,7 +47724,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSCALU",
                 "description": "LSCALU switches on the parallel LU decomposition (using scaLAPACK) in the\northonormalization of the wave functions.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48842,7 +47739,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSCSGRAD",
                 "description": "LSCSGRAD decides whether to compute gradients in the calculation of the MBD\ndispersion energy.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48857,7 +47754,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSELFENERGY",
                 "description": "This tag controls whether the frequency dependent self-energy is calculated or\nnot.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48872,7 +47769,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSEPB",
                 "description": "Specifies whether the charge density is calculated for every band separately and\nwritten to a file PARCHG.nb.* (LSEPB=.TRUE.) or whether charge density is merged\nfor all selected bands and written to the files PARCHG.ALLB.* or PARCHG.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48887,7 +47784,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSEPK",
                 "description": "Specifies whether the charge density of every k-point is write to the files\nPARCHG.*.nk (LSEPK=.TRUE.) or whether it is merged to a single file. If the merged\nfile is written, then the weight of each k-point is determined from the KPOINTS\nfile, otherwise the k-point weights of one are chosen.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48902,7 +47799,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSORBIT",
                 "description": "LSORBIT specifies whether spin-orbit coupling is taken into account.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48917,7 +47814,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSPECTRAL",
                 "description": "LSPECTRAL specifies to use the spectral method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48932,7 +47829,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSPECTRALGW",
                 "description": "LSPECTRALGW specifies to use the spectral method for calculating the self-energy.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48947,7 +47844,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSPIRAL",
                 "description": "set LSPIRAL=.TRUE. to represent spin spirals by means of a generalized Bloch\ncondition.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48962,7 +47859,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LSUBROT",
                 "description": "LSUBROT determines whether an optimal rotation matrix between the occupied and\nunoccupied block is sought, when a direct optimization of the energy functional is\nperformed (i.e. ALGO = All | Damped).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48977,7 +47874,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LTHOMAS",
                 "description": "LTHOMAS selects a decomposition of the exchange functional based on Thomas-Fermi\nscreening.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -48992,7 +47889,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LUSE_VDW",
                 "description": "The flag LUSE_VDW determines whether the VdW-DF functional of Langreth and\nLundqvist et al. is used or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49007,7 +47904,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LVDW_EWALD",
                 "description": "LVDW_EWALD decides whether lattice summation in $E_{disp}$ expression by means of\nEwald's summation is computed in the DFT-D2 method (available in VASP.5.3.4 and\nlater).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49022,7 +47919,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LVDW_ONECELL",
                 "description": "LVDW_ONECELL  can be used to disable vdW interaction with mirror image in X Y Z\ndirection. This is advisable for molecular calculations in the gas phase. In all\nother cases, use the default.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49039,7 +47936,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LVDWEXPANSION",
                 "description": "LVDWEXPANSION  decides whether to write the two- to six- body contributions to MBD\ndispersion energy in the OUTCAR file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49054,7 +47951,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LVHAR",
                 "description": "This tag determines whether the total local potential (saved in the file LOCPOT)\ncontains the entire local potential (ionic + Hartree + exchange correlation) or\nthe electrostatic contributions only (ionic + Hartree).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49069,7 +47966,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LVTOT",
                 "description": "LVTOT determines whether the total local potential is written to the LOCPOT file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49084,7 +47981,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWANNIER90",
                 "description": "LWANNIER90=.TRUE. switches on the interface between VASP and WANNIER90.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49099,7 +47996,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWANNIER90_RUN",
                 "description": "LWANNIER90_RUN executes wannier_setup (see LWANNIER90=.TRUE.) and subsequently\nruns WANNIER90 in library mode (wannier_run).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49114,7 +48011,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWAVE",
                 "description": "LWAVE determines whether the wavefunctions are written to the WAVECAR file at the\nend of a run.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49129,7 +48026,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWRITE_MMN_AMN",
                 "description": "LWRITE_MMN_AMN=.TRUE. tells the VASP2WANNIER90 interface to write the\nwannier90.mmn and wannier90.amn files.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49144,7 +48041,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWRITE_UNK",
                 "description": "LWRITE_UNK decides whether the cell-periodic part of the relevant Bloch functions\nis written.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49159,7 +48056,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LWRITE_WANPROJ",
                 "description": "LWRITE_WANPROJ determines whether the Wannier projection fille WANPROJ is written.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49174,7 +48071,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_LZEROZ",
                 "description": "for LZEROZ=.TRUE. the _z_-component of the spin-spiral magnetisation density will\nbe forced to be and to remain zero.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49189,7 +48086,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_M_CONSTR",
                 "description": "M_CONSTR specifies the desired local magnetic moment (size and/or direction) for\nthe constrained local moments approach.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49206,7 +48103,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MAGMOM",
                 "description": "MAGMOM Specifies the initial magnetic moment for each atom, if and only if\nICHARG=2, or if ICHARG=1 and the CHGCAR file contains no magnetisation density",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49223,7 +48120,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MAXMEM",
                 "description": "MAXMEM specifies the maximum memory one MPI rank will attempt to allocate (in\nMByte).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49238,7 +48135,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MAXMIX",
                 "description": "MAXMIX specifies the maximum number steps stored in Broyden mixer IMIX=4).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49253,7 +48150,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MDALGO",
                 "description": "MDALGO specifies the molecular dynamics simulation protocol (in case IBRION=0 and\nVASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49268,7 +48165,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_METAGGA",
                 "description": "selects one of various meta-GGA functionals.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49283,7 +48180,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MINROT",
                 "description": "The flag MINROT defines the value for which the dimer is rotated only if the\npredicted rotation angle is greater than MINROT (rad.) in the Improved Dimer\nMethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49298,7 +48195,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_MIXPRE",
                 "description": "MIXPRE specifies the metric in the Broyden mixing scheme(IMIX=4).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49313,7 +48210,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_AFILT2_MB",
                 "description": "This tag sets the filtering parameter for the angular filtering for\nML_FF_IAFILT2_MB in the machine learning force-field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49328,7 +48225,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_CDOUB",
                 "description": "This flag controls the necessity of DFT calculations in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49343,7 +48240,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_CSF",
                 "description": "This flag sets the threshold for the spilling factor in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49358,7 +48255,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_CSIG",
                 "description": "Parameter used in the automatic determination of threshold for Bayesian error\nestimation in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49373,7 +48270,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_CSLOPE",
                 "description": "Parameter used in the automatic determination of threshold for Bayesian error\nestimation in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49388,7 +48285,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_CTIFOR",
                 "description": "This flag sets the threshold for the Bayesian error estimation on the force in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49403,7 +48300,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_EATOM",
                 "description": "Reference total energies of isolated atoms used in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49420,7 +48317,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IAFILT2_MB",
                 "description": "This tag specifies the type of angular filtering used in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49435,7 +48332,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IBROAD1_MB",
                 "description": "This tag determines how the atomic distribution is broadened for the radial\ndescriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49450,7 +48347,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IBROAD2_MB",
                 "description": "This tag determines how the atomic distribution is broadened for the angular\ndescriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49465,7 +48362,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ICOUPLE_MB",
                 "description": "This tag specifies the atoms where the coupling parameter is introduced to\ncalculate the chemical potential within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49482,7 +48379,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ICUT1_MB",
                 "description": "This tag specifies the type of cutoff function used for the radial descriptor in\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49497,7 +48394,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ICUT2_MB",
                 "description": "This tag specifies the type of cutoff function used for the angular descriptor in\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49512,7 +48409,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IERR",
                 "description": "This tag selects the error estimation method used in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49527,7 +48424,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IREG_MB",
                 "description": "This tag specifies whether the regularization parameters are kept constant or not\nin the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49542,7 +48439,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ISAMPLE",
                 "description": "This tag controls the sampling in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49557,7 +48454,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ISCALE_TOTEN_MB",
                 "description": "This tag specifies how to scale the energy data for the many-body term in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49572,7 +48469,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ISOAP1_MB",
                 "description": "This tag defines the type of the SOAP kernel for the radial descriptor in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49587,7 +48484,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ISOAP2_MB",
                 "description": "This tag defines the type of the SOAP kernel for the angular descriptor in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49602,7 +48499,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_ISTART",
                 "description": "This tag decides if and how calculations are continued from existing data in\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49617,7 +48514,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_IWEIGHT",
                 "description": "Flag to control the weighting of training data in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49632,7 +48529,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LAFILT2_MB",
                 "description": "This tag specifies whether angular filtering is applied or not within the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49647,7 +48544,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LBASIS_DISCARD",
                 "description": "This variable specifies whether the basis sets are thrown away when its number\nexceeds ML_FF_MB_MB in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49662,7 +48559,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LCONF_DISCARD",
                 "description": "This flag decides whether configurations that do not provide local reference\nconfigurations are discarded or not in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49677,7 +48574,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LCOUPLE_MB",
                 "description": "This tag specifies whether coupling parameters are used for the calculation of\nchemical potentials is used or not within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49692,7 +48589,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LCRITERIA",
                 "description": "Decides whether the threshold in the learning decision step for the Bayesian error\nestimation is renewed or not in the machine learning force field methods.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49707,7 +48604,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LEATOM_MB",
                 "description": "This term specifies whether the total atomic energy is written out or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49722,7 +48619,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LHEAT_MB",
                 "description": "This flag specifies whether the heat flux is calculated or not in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49737,7 +48634,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LMAX2_MB",
                 "description": "This tag specifies the maximum angular momentum quantum number of spherical\nharmonics used to expand atomic distributions within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49752,7 +48649,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LMLFF",
                 "description": "Main control tag whether to use machine learned force fields or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49767,7 +48664,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LMLMB",
                 "description": "This controls whether the many-body interaction term is included in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49782,7 +48679,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LNORM1_MB",
                 "description": "This tag specifies whether the radial descriptor is normalized (by dividing\nthrough it's norm) or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49797,7 +48694,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_LNORM2_MB",
                 "description": "This tag specifies whether the angular descriptor is normalized (by dividing\nthrough it's norm) or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -49812,7 +48709,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MB_MB",
                 "description": "This flag sets the maximum number of basis sets describing the many-body\ninteractions in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49827,7 +48724,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MCONF",
                 "description": "This flag sets the maximum number of configurations used for training in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49842,7 +48739,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MCONF_NEW",
                 "description": "This flag sets the number of configurations that are stored temporally as\ncandidates for the training data in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49857,7 +48754,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MHIS",
                 "description": "This flag sets the number of estimated errors stored in memory to determine the\nthreshold for the Bayesian error in the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49872,7 +48769,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MRB1_MB",
                 "description": "This tag sets the number of radial basis sets used to expand the atomic\ndistribution for the radial descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49887,7 +48784,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MRB2_MB",
                 "description": "This tag sets the number of radial basis sets used to expand the atomic\ndistribution for the angular descriptor withtin the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49902,7 +48799,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MSPL1_MB",
                 "description": "This tag sets the number of points for the radial grid used in the spline\ninterpolation for the radial descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49917,7 +48814,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_MSPL2_MB",
                 "description": "This tag sets the number of points for the radial grid used in the spline\ninterpolation of the angular descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49932,7 +48829,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NATOM_COUPLED_MB",
                 "description": "This tag specifies the number of atoms for which a coupling parameter is\nintroduced to calculate the chemical potential within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49947,7 +48844,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NDIM_SCALAPACK",
                 "description": "This flag sets the dimension of the ScaLAPACK grids used in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49962,7 +48859,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NHYP1_MB",
                 "description": "Polynomial power of the radial kernel.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49977,7 +48874,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NHYP2_MB",
                 "description": "Polynomial parameter (power) of the SOAP kernel.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -49992,7 +48889,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NMDINT",
                 "description": "Tag to control the minimum interval to get training samples in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50007,7 +48904,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NR1_MB",
                 "description": "This tag determines the number of grid points used to execute radial integrations\nto compute the radial descriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50022,7 +48919,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NR2_MB",
                 "description": "This tag determines the number of grid points used to execute radial integrations\nto compute the angular descriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50037,7 +48934,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_NWRITE",
                 "description": "This tag controls part of the output within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50052,7 +48949,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_RCOUPLE_MB",
                 "description": "This tag specifies the value of the coupling parameter for the calculation of the\nchemical potential within the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50067,7 +48964,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_RCUT1_MB",
                 "description": "This flag sets the cutoff radius for the radial descriptor in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50082,7 +48979,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_RCUT2_MB",
                 "description": "This flag sets the cutoff radius for the angular descriptor in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50097,7 +48994,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_SIGV0_MB",
                 "description": "This flag sets the initial noise parameter in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50112,7 +49009,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_SIGW0_MB",
                 "description": "This flag sets the initial precision parameter in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50127,7 +49024,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_SION1_MB",
                 "description": "This tag specifies the width of the Gaussian functions used for broadening the\natomic distributions for the radial descriptor within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50142,7 +49039,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_SION2_MB",
                 "description": "This tag specifies the width of the Gaussian functions used for broadening the\natomic distributions of the angular descriptor within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50157,7 +49054,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_W1_MB",
                 "description": "This tag defines the weight for the radial descriptor within the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50172,7 +49069,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_W2_MB",
                 "description": "This tag defines the weight for the angular descriptor within the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50187,7 +49084,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_WTIFOR",
                 "description": "This tag sets the weight for the scaling of the forces in the training data within\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50202,7 +49099,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_WTOTEN",
                 "description": "This tag sets the weight for the scaling of the total energy in the training data\nwithin the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50217,7 +49114,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ML_FF_WTSIF",
                 "description": "This tag sets the weight for the scaling of the total energy in the training data\nwithin the machine learning force field method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50232,7 +49129,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBANDS",
                 "description": "NBANDS determines the actual number of bands in the calculation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50247,7 +49144,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBANDSGW",
                 "description": "The flag determines how many QP energies are calculated and updated in GW type\ncalculations.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50262,7 +49159,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBANDSO",
                 "description": "NBANDSO determines how many occupied orbitals are included in the Casida/BSE\ncalculations or time-propagation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50277,7 +49174,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBANDSV",
                 "description": "NBANDSV determines how many unoccupied orbitals are included in the Casida/BSE\ncalculations or timepropagation.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50292,7 +49189,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBLK",
                 "description": "NBLK determines the blocking factor in many BLAS level 3 routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50307,7 +49204,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBLOCK",
                 "description": "After NBLOCK ionic steps the pair correlation function and the DOS are calculated\nand the ionic configuration is written to the XDATCAR-file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50322,7 +49219,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBMOD",
                 "description": "Controls which bands are used in the calculation of Band decomposed charge\ndensities. Check also IBAND and EINT.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50337,7 +49234,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NBSEEIG",
                 "description": "NBSEEIG sets the number number of BSE eigenvectors written to the BSEFATBAND\noutput file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50352,7 +49249,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NCORE",
                 "description": "NCORE determines the number of compute cores that work on an individual orbital\n(available as of VASP.5.2.13).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50367,7 +49264,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NCRPA_BANDS",
                 "description": "Controls which bands are excluded in CRPA. Check also NTARGET_STATES.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50384,7 +49281,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NDAV",
                 "description": "NDAV sets the maximum number of iterative steps per bands per RMM-DIIS step\n(IALGO=4X).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50399,7 +49296,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NEDOS",
                 "description": "NEDOS specifies number of gridpoints on which the DOS is evaluated",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50414,7 +49311,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NELECT",
                 "description": "NELECT sets the number of electrons.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50429,7 +49326,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NELM",
                 "description": "NELM sets the maximum number of electronic SC (selfconsistency) steps which may be\nperformed.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50444,7 +49341,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NELMDL",
                 "description": "NELMDL specifies the number of non-selfconsistent steps at the beginning.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50459,7 +49356,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NELMIN",
                 "description": "NELMIN specifies the minimum number of electronic SCF steps.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50474,7 +49371,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NFREE",
                 "description": "depending on IBRION, NFREE specifies the number of remembered steps in the history\nof ionic convergence runs, or the number of ionic displacements in frozen phonon\ncalculations.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50489,7 +49386,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGX",
                 "description": "NGX sets the number of grid points in the FFT-grid along the first lattice vector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50504,7 +49401,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGXF",
                 "description": "NGXF sets the number of grid points in the fine FFT-grid along the first lattice\nvector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50519,7 +49416,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGY",
                 "description": "NGY sets the number of grid points in the FFT-grid along the second lattice\nvector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50534,7 +49431,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGYF",
                 "description": "NGYF sets the number of grid points in the fine FFT-grid along the second lattice\nvector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50549,7 +49446,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGYROMAG",
                 "description": "NGYROMAG specifies the nuclear gyromagnetic ratios (in MHz, for H<sub>0</sub> = 1\nT) for the atomic types on the POTCAR file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50566,7 +49463,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGZ",
                 "description": "NGZ sets the number of grid points in the FFT-grid along the third lattice vector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50581,7 +49478,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NGZF",
                 "description": "NGZF sets the number of grid points in the fine  FFT-grid along the first lattice\nvector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50596,7 +49493,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NKRED",
                 "description": "NKRED specifies an uniform reduction factor for the **q**-point grid\nrepresentation of the exact exchange potential and the correlation part in GW\ncalculations.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50611,7 +49508,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NKREDX",
                 "description": "NKREDX specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>1</sub>.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50626,7 +49523,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NKREDY",
                 "description": "NKREDY specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>2</sub>.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50641,7 +49538,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NKREDZ",
                 "description": "NKREDZ specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>3</sub>.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50656,7 +49553,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NLSPLINE",
                 "description": "construct the PAW projectors in reciprocal space using spline interpolation so\nthat they are _k_-differentiable.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -50671,7 +49568,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NMAXFOCKAE",
                 "description": "NMAXFOCKAE and LMAXFOCKAE determine whether the overlap densities in the Fock\nexchange and correlated wave function methods are accurately reconstructed on the\nplane wave grid. This flag generally only applies to the Fock-exchange part as\nwell as many-body post DFT methods (GW, RPA, MP2, etc.).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50686,7 +49583,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NOMEGA",
                 "description": "NOMEGA specifies the number of (imaginary) frequency and imaginary time grid\npoints.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50701,7 +49598,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NOMEGAPAR",
                 "description": "NOMEGAPAR available as of VASP.6, specifies the number of processor groups sharing\nthe same imaginary frequency grid points..",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50716,7 +49613,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NOMEGAR",
                 "description": "NOMEGAR specifies the number of frequency grid points along the real axis.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50731,7 +49628,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NPACO",
                 "description": "NPACO sets the number of slots in the pair-correlation function written to PCDAT.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50746,7 +49643,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NPAR",
                 "description": "NPAR determines the number of bands that are treated in parallel.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50761,7 +49658,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NPPSTR",
                 "description": "NPPSTR specifies the number of k-points on the strings in the IGPAR direction.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50776,7 +49673,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NSIM",
                 "description": "NSIM sets the number of bands that are optimized simultaneously by the RMM-DIIS\nalgorithm.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50791,7 +49688,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NSUBSYS",
                 "description": "NSUBSYS defines the atomic subsystems in calculations with multiple Anderson\nthermostats (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50806,7 +49703,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NSW",
                 "description": "NSW sets the maximum number of ionic steps.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50821,7 +49718,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NTARGET_STATES",
                 "description": "Controls which Wannier states are excluded in CRPA. Check also NCRPA_BANDS.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50838,7 +49735,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NTAUPAR",
                 "description": "NTAUPAR available as of VASP.6, specifies the number of MPI groups sharing same\nimaginary time grid points. The default value of NTAUPAR is set automatically and\ndepends on MAXMEM, the available memory for each rank on one node.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50853,7 +49750,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NUPDOWN",
                 "description": "Sets the difference between the number of electrons in the up and down spin\ncomponents.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50868,7 +49765,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_NWRITE",
                 "description": "This flag determines how much will be written to the file OUTCAR ('verbosity\nflag').",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50883,7 +49780,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ODDONLY",
                 "description": "ODDONLY=.TRUE. selects a subset of **k**-points for the representation of the Fock\nexchange potential, with _C_<sub>1</sub>=_C_<sub>2</sub>=_C_<sub>3</sub>=1, and\n_n_<sub>1</sub>+_n_<sub>2</sub>+_n_<sub>3</sub> odd.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -50898,7 +49795,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ODDONLYGW",
                 "description": "ODDONLYGW allows to avoid the inclusion of the  point in the evaluation of\nresponse functions (in GW calculations).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -50913,7 +49810,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OFIELD_A",
                 "description": "The flag OFIELD_A sets the desired order parameter *Q*<sub>6</sub> in the\nInterface pinning method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50928,7 +49825,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OFIELD_KAPPA",
                 "description": "The flag OFIELD_KAPPA sets the strength of bias potential in units of 'eV/(unit of\nQ)$^2$' in the Interface pinning method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50943,7 +49840,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OFIELD_Q6_FAR",
                 "description": "The flag OFIELD_Q6_FAR sets the far fading distance (in Angstroms) for the\ncomputation of a continuous to *Q*<sub>6</sub> parameter in the Interface pinning\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50958,7 +49855,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OFIELD_Q6_NEAR",
                 "description": "The flag OFIELD_Q6_NEAR sets the near fading distance (in Angstroms) for the\ncomputation of a continuous *Q*<sub>6</sub> parameter in the Interface pinning\nmethod.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50973,7 +49870,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OMEGAMAX",
                 "description": "OMEGAMAX specifies the maximum frequency for dense part of the frequency grid. For\nCRPA calculations, OMEGAMAX is the frequency point of the interaction.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -50988,7 +49885,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OMEGAMIN",
                 "description": "minimum frequency in the frequency grid.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51003,7 +49900,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_OMEGATL",
                 "description": "OMEGATL specifies the maximum frequency for coarse part of the frequency grid.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51018,7 +49915,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PARAM1",
                 "description": "The flag PARAM1 determines the first parameter used in the enhancement factor of\nthe optPBE-vdW and optB88-vdW functional.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51033,7 +49930,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PARAM2",
                 "description": "The flag PARAM2 determines the second parameter used in the enhancement factor of\nthe optPBE-vdW and optB88-vdW functional.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51048,7 +49945,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PFLAT",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51063,7 +49960,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PHON_LBOSE",
                 "description": "This flag determines whether random structures in the Monte-Carlo (MC) sampling\nare created according to Bose-Einstein or Maxwell-Boltzmann statistics.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51078,7 +49975,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PHON_LMC",
                 "description": "This flag controls whether electron-phonon interactions from Monte-Carlo sampling\nare calculated or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51093,7 +49990,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PHON_NSTRUCT",
                 "description": "This flag sets the number of structures for electron-phonon interactions from\nMonte-Carlo (MC) sampling.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51108,7 +50005,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PHON_NTLIST",
                 "description": "This flag sets the number temperatures for that the electron-phonon interactions\nusing the ZG configuration is evaluated.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51123,7 +50020,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PHON_TLIST",
                 "description": "This flag provides the list of temperatures for that the electron-phonon\ninteractions using the ZG configuration is evaluated.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51140,7 +50037,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PLEVEL",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51155,7 +50052,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PMASS",
                 "description": "PMASS assigns a fictitious mass (in amu) to the lattice degrees-of-freedom in case\nof Parrinello-Rahman dynamics (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51170,7 +50067,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_POMASS",
                 "description": "POMASS describes the mass of each atomic sphere in atomic units.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51185,7 +50082,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_POTIM",
                 "description": "POTIM sets the time step (MD) or step width scaling (ionic relaxations).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51200,7 +50097,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PREC",
                 "description": "PREC specifies the precision  mode.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51215,7 +50112,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PRECFOCK",
                 "description": "PRECFOCK controls the FFT grids used in the exact exchange routines (Hartree-Fock\nand hybrid functionals).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51230,7 +50127,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PROUTINE",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51245,7 +50142,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PSTRESS",
                 "description": "This flag controls whether Pulay corrections are added to the stress tensor or\nnot. In molecular dynamics calculations it controls the pressure. The unit of\nPSTRESS is in kB.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51260,7 +50157,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PSUBSYS",
                 "description": "PSUBSYS sets the collision probabilities for the atoms in each atomic subsystem in\ncalculations with multiple Anderson thermostats (in case VASP was compiled with\n-Dtbdyn). Note: 0 \u2264 PSUBSYS \u2264 1",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51277,7 +50174,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_PTHRESHOLD",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51292,7 +50189,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_QMAXFOCKAE",
                 "description": "The parameter QMAXFOCKAE controls at which wave vectors the local augmentation\ncharges are fitted to obtain an accurate charge augmentation on the plane wave\ngrid.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51309,7 +50206,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_QSPIRAL",
                 "description": "the QSPIRAL-tag specifies the spin spiral propagation vector.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51326,7 +50223,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_QUAD_EFG",
                 "description": "nuclear quadrupole moment (in millbarn) for the atomic types on the POTCAR file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51343,7 +50240,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_RANDOM_SEED",
                 "description": "RANDOM_SEED specifies the seed of the random-number-generator (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51360,7 +50257,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ROPT",
                 "description": "ROPT determines how precise the projectors are represented in real space.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51377,7 +50274,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_RWIGS",
                 "description": "RWIGS specifies the Wigner-Seitz radius for each atom type.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51394,7 +50291,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SAXIS",
                 "description": "SAXIS specifies the quantisation axis for noncollinear spins.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51411,7 +50308,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SCSRAD",
                 "description": "SCSRAD defines the cutoff radius (in Angs ) used in the calculation of\n$\\tau_{ij}$ within the Tkatchenko-Scheffler method. Self-consistent screening in\nTkatchenko-Scheffler method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51426,7 +50323,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SHAKEMAXITER",
                 "description": "SHAKEMAXITER specifies the maximum number of iterations in the SHAKE algorithm (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51441,7 +50338,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SHAKETOL",
                 "description": "SHAKETOL specifies the tolerance for the SHAKE algorithm (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51456,7 +50353,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SIGMA",
                 "description": "SIGMA specifies the width of the smearing in eV.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51471,7 +50368,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SMASS",
                 "description": "SMASS controls the velocities during an ab-initio molecular dynamics run.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51486,7 +50383,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SMEARINGS",
                 "description": "SMEARINGS defines the smearing parameters for ISMEAR=-3 in the calculation of the\npartial occupancies.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51503,7 +50400,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SPRING",
                 "description": "SPRING gives the <i>spring constant</i> between the images as used in the elastic\nband method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51518,7 +50415,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_STEP_MAX",
                 "description": "The flag STEP_MAX defines the trust radius (upper limit) for the optimization step\n(in Angs ) in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51533,7 +50430,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_STEP_SIZE",
                 "description": "The flag STEP_SIZE defines the trial step size for the optimization step (in Angs\n) in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51548,7 +50445,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SYMPREC",
                 "description": "SYMPREC determines to which accuracy the positions in the POSCAR file must be\nspecified (as of VASP.4.4.4).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51563,7 +50460,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_SYSTEM",
                 "description": "The 'title string' defined by SYSTEM is for the user only and should help the user\nto identify what he wants to do with this specific input file.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51578,7 +50475,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_TEBEG",
                 "description": "TEBEG sets the start temperature for an ab-initio molecular dynamics run\n(IBRION=0) and other routines (e.g. Electron-phonon interactions from Monte-Carlo\nsampling).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51593,7 +50490,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_TEEND",
                 "description": "TEEND sets the final temperature for an ab-initio molecular dynamics run\n(IBRION=0; SMASS=\u22121).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51608,7 +50505,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_TIME",
                 "description": "TIME controls the time step for IALGO=5X and for the initial (steepest descent)\nphase of IALGO=4X.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51623,7 +50520,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_TSUBSYS",
                 "description": "TSUBSYS sets the temperatures for the atomic subsystems in calculations with\nmultiple Anderson thermostats (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51640,7 +50537,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VALUE_MAX",
                 "description": "VALUE_MAX sets the upper limits for the monitoring of geometric parameters (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51657,7 +50554,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VALUE_MIN",
                 "description": "VALUE_MIN sets the lower limits for the monitoring of geometric parameters (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51674,7 +50571,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VCUTOFF",
                 "description": "The parameter VCUTOFF sets the energy cutoff for bare Coulomb matrix elements and\ncontrols the basis set for the bare Coulomb interaction.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51689,7 +50586,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_A1",
                 "description": "VDW_A1 defines the damping function parameter  in the DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51704,7 +50601,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_A2",
                 "description": "VDW_A2 defines the damping function parameter  in the DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51719,7 +50616,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_C6",
                 "description": "VDW_C6 defines the  $C_6$ parameters (units: J.nm$^6$mol$^{-1}$ ) for each species\ndefined in the POSCAR file within the DFT-D2 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51736,7 +50633,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_CNRADIUS",
                 "description": "VDW_CNRADIUS defines the cutoff radius (in Angs ) for the calculation of the\ncoordination numbers used in the DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51751,7 +50648,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_D",
                 "description": "VDW_D defines the damping parameter _d_ in the DFT-D2method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51766,7 +50663,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_R0",
                 "description": "VDW_R0 defines the $R_0$ parameters (units: Angs ) for each species defined in the\nPOSCAR file within the DFT-D2 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51783,7 +50680,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_RADIUS",
                 "description": "VDW_RADIUS defines the cutoff radius (in Angs) for the pair interactions used in\nthe DFT-D2 and DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51798,7 +50695,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_S6",
                 "description": "VDW_S6 defines the global scaling factor _S_6_ in the DFT-D2 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51813,7 +50710,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_S8",
                 "description": "VDW_S8 defines the damping function parameter $s_8$ in the DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51828,7 +50725,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VDW_SR",
                 "description": "VDW_SR defines the damping function parameter $S_R$ (or scaling factor) in the\nDFT-D2 and DFT-D3 method.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51843,7 +50740,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_VOSKOWN",
                 "description": "Determines whether Vosko-Wilk-Nusair interpolation is used or not.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51858,7 +50755,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_WC",
                 "description": "WC specifies the weight factor for each step in Broyden mixing scheme (IMIX=4).",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51873,7 +50770,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_WEIMIN",
                 "description": "WEIMIN specifies the maximum weight for a band to be considered empty.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51888,7 +50785,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ZVAL",
                 "description": "ZVAL describes the valency of each atomic sphere.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51911,7 +50808,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 23,
+        "m_parent_index": 21,
         "m_parent_sub_section": "packages",
         "name": "electronicparsers.vasp.metainfo.vasp_incarsOut",
         "section_definitions": [
@@ -51932,7 +50829,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ADDGRID",
                 "description": "ADDGRID determines whether an additional support grid is used for the evaluation\nof the augmentation charges.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -51947,7 +50844,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AEXX",
                 "description": "AEXX specifies the fraction of exact exchange in a Hartree-Fock/DFT hybrid\nfunctional type calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51962,7 +50859,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AGGAC",
                 "description": "AGGAC specifies the fraction of gradient corrections to the correlation in a\nHartree-Fock/DFT hybrid functional type calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51977,7 +50874,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AGGAX",
                 "description": "AGGAX specifies the fraction of gradient corrections to the exchange in a Hartree-\nFock/DFT hybrid functional type calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -51992,7 +50889,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ALDAC",
                 "description": "ALDAC specifies the fraction of LDA correlation in a Hartree-Fock/DFT hybrid\nfunctional type calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52007,7 +50904,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ALGO",
                 "description": "Option to specify the electronic minimisation algorithm (as of VASP.4.5) and/or to\nselect the type of GW calculations.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52022,7 +50919,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AMIN",
                 "description": "AMIN specifies the minimal mixing parameter in Kerker's initial approximation to\nthe charge dielectric function used in the Broyden / Pulay mixing scheme (IMIX=4,\nINIMIX=1).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52037,7 +50934,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AMIX",
                 "description": "AMIX specifies the linear mixing parameter.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52052,7 +50949,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_AMIX_MAG",
                 "description": "AMIX_MAG linear mixing parameter for the magnetization density.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52067,7 +50964,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ANDERSEN_PROB",
                 "description": "ANDERSEN_PROB sets the collision probability for the Anderson thermostat (in case\nVASP was compiled with the flag -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52082,7 +50979,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ANTIRES",
                 "description": "The flag ANTIRES determines whether the Tamm-Dancoff approximation is used or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52097,7 +50994,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_APACO",
                 "description": "APACO sets the maximum distance in the evaluation of the pair-correlation function\n(in Angstroms).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52112,7 +51009,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_BMIX",
                 "description": "BMIX sets the cutoff wave vector for Kerker mixing scheme (IMIX = 1 and / or\nINIMIX = 1).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52127,7 +51024,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_BMIX_MAG",
                 "description": "BMIX_MAG sets the cutoff wave vector for Kerker mixing scheme (IMIX=1 and/or\nINIMIX=1) for the magnetization density.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52142,7 +51039,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CH_LSPEC",
                 "description": "This flag controls whether the imaginary part of the dielectric function for a\nselected core electron is calculated and written to the OUTCAR file or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52157,7 +51054,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CH_NEDOS",
                 "description": "This tag specifies the number of frequency (energy) grid points on the x-axis in\nthe calculation of the dielectric function for XAS spectra.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52172,7 +51069,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CH_SIGMA",
                 "description": "This tag specifies the broadening in eV of the imaginary dielectric function for a\ncore electron.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52187,7 +51084,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CLL",
                 "description": "CLL selects the angular (l) quantum number of the excited electron when using\nICORELEVEL=2.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52202,7 +51099,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CLN",
                 "description": "CLN selects the main quantum number of the excited electron when using\nICORELEVEL=2.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52217,7 +51114,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CLNT",
                 "description": "CLNT selects for which species the core levels are calculated using the tag\nICORELEVEL.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52232,7 +51129,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CLZ",
                 "description": "CLZ selects the electron count of the excited electron when using ICORELEVEL=2.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52247,7 +51144,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CMBJ",
                 "description": "defines the _c_ parameter in the modified Becke-Johnson meta-GGA potential. NOTE:\nEither specify a single value, or one value per atomic type (FIXME)",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52262,7 +51159,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CMBJA",
                 "description": "sets the $\\alpha$ parameter in the modified Becke-Johnson meta-GGA potential.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52277,7 +51174,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CMBJB",
                 "description": "sets the $\\eta$ parameter in the modified Becke-Johnson meta-GGA potential.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52292,7 +51189,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_CSHIFT",
                 "description": "CSHIFT sets the (small) complex shift $\\eta$ in the Kramers-Kronig transformation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52307,7 +51204,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_DEPER",
                 "description": "DEPER specifies a relative stopping criterion for the optimization of an\neigenvalue.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52322,7 +51219,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_DIMER_DIST",
                 "description": "The flag DIMER_DIST defines the step size for the numerical differentiation (in\nAngstrongs) for the Improved Dimer Method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52337,7 +51234,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_DIPOL",
                 "description": "Specifies the center of the cell in direct lattice coordinates with respect to\nwhich the total dipole-moment in the cell is calculated.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52354,7 +51251,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_DQ",
                 "description": "Step size for the finite difference _k_-space derivative in the linear response\ncalculation of chemical shifts. Typical values for DQ are in the range [0.001 -\n0.003]. The default is often sufficient",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52369,7 +51266,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EBREAK",
                 "description": "EBREAK specifies an absolute stopping criterion for the optimization of an\neigenvalue.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52384,7 +51281,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EDIFF",
                 "description": "EDIFF specifies the global break condition for the electronic SC-loop.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52399,7 +51296,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EDIFFG",
                 "description": "EDIFFG defines the break condition for the ionic relaxation loop.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52414,7 +51311,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EFIELD",
                 "description": "EFIELD controls the magnitude of the applied electric force field.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52429,7 +51326,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EFIELD_PEAD",
                 "description": "EFIELD_PEAD specifies the homogeneous electric field in the electric enthalpy\nfunctional used to compute the  self-consistent response to finite electric\nfields.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52446,7 +51343,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EINT",
                 "description": "Specifies the energy range of the bands that are used for the evaluation of the\npartial charge density needed in Band decomposed charge densities. Check also\nNBMOD and IBAND.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52463,7 +51360,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EMAX",
                 "description": "EMAX specifies the  upper boundary of the energy range for the evaluation of the\nDOS.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52478,7 +51375,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EMIN",
                 "description": "specifies the lower boundary of the energy range for the evaluation of the DOS.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52493,7 +51390,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENAUG",
                 "description": "ENAUG specifies the cut-off energy of the plane wave representation of the\naugmentation charges in eV.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52508,7 +51405,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENCUT",
                 "description": "ENCUT specifies the cutoff energy for the planewave basis set in eV.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52523,7 +51420,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENCUTFOCK",
                 "description": "The ENCUTFOCK tag sets the energy cutoff that determines the FFT grids used by the\nHartree-Fock routines. WARNING: The flag ENCUTFOCK is no longer supported in\nVASP.5.2.4 and newer versions. Please use PRECFOCK instead.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52538,7 +51435,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENCUTGW",
                 "description": "The tag ENCUTGW sets the energy cutoff for response function. It controls the\nbasis set for the response functions  in exactly the same manner as ENCUT does for\nthe orbitals.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52553,7 +51450,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENCUTGWSOFT",
                 "description": "The flag ENCUTGWSOFT sets the energy cutoff for response function, such that it\nallows to truncate the Coulomb kernel slowly between the energy specified by\nENCUTGWSOFT and ENCUTGW.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52568,7 +51465,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENINI",
                 "description": "ENINI controls the cutoff during the initial (steepest descent) phase for\nIALGO=48.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52583,7 +51480,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EPSILON",
                 "description": "EPSILON sets the dielectric constant of the medium.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52598,7 +51495,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EVENONLY",
                 "description": "EVENONLY=.TRUE. selects a subset of k-points for the representation of the Fock\nexchange potential, with $C_1=C_2=C_3=1$, and $n_1+n_2+n_3$ even.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52613,7 +51510,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_EVENONLYGW",
                 "description": "EVENONLYGW allows to restrict the k-points in the evaluation of response functions\n(in GW calculations) to even values.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52628,7 +51525,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_FERDO",
                 "description": "FERDO sets the occupancies of the states in the down-spin channel for ISMEAR=-2\nand ISPIN=2.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52645,7 +51542,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_FERWE",
                 "description": "FERWE sets the occupancies of the states for  ISMEAR=-2.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52662,7 +51559,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_FINDIFF",
                 "description": "The flag DIMER_DIST defines whether a forward (FINDIFF=1) or a central (FINDIFF=2)\ndifference formula for the numerical differentiation to compute the curvature\nalong the dimer direction is used in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52677,7 +51574,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_GGA",
                 "description": "GGA specifies the type of generalized-gradient-approximation one wishes to use.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52692,7 +51589,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_GGA_COMPAT",
                 "description": "This flag restores the full lattice symmetry for gradient corrected functionals.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -52707,7 +51604,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HFLMAX",
                 "description": "To be compatible w.r.t. old releases, VASP also reads the flag HFLMAX to the same\neffect as LMAXFOCK.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52722,7 +51619,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HFRCUT",
                 "description": "HFRCUT specifies the spherical cutoff radius for the potential kernel in hybrid\nfunctionals.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52737,7 +51634,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HFSCREEN",
                 "description": "HFSCREEN specifies the range-separation parameter in range separated hybrid\nfunctionals.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52752,7 +51649,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HILLS_BIN",
                 "description": "HILLS_BIN sets the number of steps after which the bias potential is updated in a\nmetadynamics run (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52767,7 +51664,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HILLS_H",
                 "description": "HILLS_H specifies the height of the Gaussian hill (in eV) used in metadynamics (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52782,7 +51679,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HILLS_W",
                 "description": "HILLS_W specifies the width of the Gaussian hill (in units of the corresponding\ncollective variable) used in metadynamics (in case VASP was compiled with\n-Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52797,7 +51694,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_HITOLER",
                 "description": "HITOLER specifies the convergence parameter for iterative Hirschfeld partitioning\n(DFT-TS/HI).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52812,7 +51709,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_I_CONSTRAINED_M",
                 "description": "I_CONSTRAINED_M switches on the constrained local moments approach.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52827,7 +51724,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IALGO",
                 "description": "IALGO selects the algorithm used to optimize the orbitals. WARNING",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52842,7 +51739,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IBAND",
                 "description": "Controls which bands are used in the calculation of Band decomposed charge\ndensities. Check also NBMOD and EINT.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52859,7 +51756,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IBRION",
                 "description": "IBRION determines how the ions are updated and moved.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52874,7 +51771,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ICHARG",
                 "description": "ICHARG determines how VASP constructs the <i>initial</i> charge density.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52889,7 +51786,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ICHIBARE",
                 "description": "determines the order of the finite difference stencil used to calculate the\nmagnetic susceptibility.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52904,7 +51801,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ICORELEVEL",
                 "description": "ICORELEVEL controls whether the core energies are explicitely calculated or not\nand how they are calculated.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52919,7 +51816,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IDIPOL",
                 "description": "IDIPOL switches on monopole/dipole and quadrupole corrections to the total energy.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52934,7 +51831,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IEPSILON",
                 "description": "The flag IEPSILON determines along which Cartesien the E field is applied.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52949,7 +51846,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IGPAR",
                 "description": "This tag specifies the socalled parallel or  $G_{||}$ direction in the integration\nover the reciprocal space unit cell needed for LCALCPOL.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52964,7 +51861,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IMAGES",
                 "description": "IMAGES defines the number of interpolated geometries between the initial and final\nstate in Elastic Band calculations",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52979,7 +51876,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IMIX",
                 "description": "IMIX specifies the type of mixing.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -52994,7 +51891,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_INCREM",
                 "description": "INCREM controls the transformation velocity in the slow-growth approach (in case\nVASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53011,7 +51908,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_INIMIX",
                 "description": "INIMIX determines the functional form of the initial mixing matrix in the Broyden\nscheme (IMIX=4).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53026,7 +51923,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_INIWAV",
                 "description": "INIWAV specifies how to set up the initial orbitals in case ISTART=0.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53041,7 +51938,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IPEAD",
                 "description": "IPEAD specifies the order of the finite difference stencil used to compute the\nderivative of the cell-periodic part of the orbitals w.r.t. **k** (LPEAD=.TRUE.),\nand the derivative of the polarization w.r.t. the orbitals,  for (LCALCEPS=.TRUE.,\nor EFIELD_PEAD$\\not=$0).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53056,7 +51953,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ISIF",
                 "description": "ISIF determines whether the stress tensor is calculated and which principal\ndegrees-of-freedom are allowed to change in relaxation and molecular dynamics\nruns.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53071,7 +51968,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ISMEAR",
                 "description": "ISMEAR determines how the partial occupancies $f_{n\\mathbf{k}}$  are set for each\norbital. SIGMA  determines the width of the smearing in eV.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53086,7 +51983,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ISPIN",
                 "description": "ISPIN specifies spin polarization.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53101,7 +51998,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ISTART",
                 "description": "ISTART determines whether or not to read the WAVECAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53116,7 +52013,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ISYM",
                 "description": "ISYM determines the way VASP treats symmetry.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53131,7 +52028,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IVDW",
                 "description": "This tag controls whether vdW corrections are calculated or not. If they are\ncalculated IVDW controls how they are calculated.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53146,7 +52043,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_IWAVPR",
                 "description": "IWAVPR determines how orbitals and/or charge densities are extrapolated from one\nionic configuration to the next configuration.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53161,7 +52058,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KBLOCK",
                 "description": "After KBLOCK*NBLOCK ionic steps the averaged pair correlation function and DOS are\nwritten to the files PCDAT and DOSCAR. More details can be found on the page\ndescribing the tag NBLOCK.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53176,7 +52073,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KGAMMA",
                 "description": "Determines whether the _k_-points (determined by the tag KSPACING if KPOINTS file\nis not present) are center around (KGAMMA=.TRUE.), or shifted away\n(KGAMMA=.FALSE.) from the $\\Gamma$ point.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53191,7 +52088,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KPAR",
                 "description": "KPAR determines the number of **k**-points that are to be treated in parallel\n(available as of VASP.5.3.2).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53206,7 +52103,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KPOINT_BSE",
                 "description": "The flag KPOINT_BSE allows to calculate the dielectric matrix at one of the\nkpoints used to sample the Brillouin zone. NOTE: Either specify one or three\nintegers (FIXME)",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53221,7 +52118,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KPUSE",
                 "description": "Specifies which k-points are used in the evaluation of the partial dos (Band\ndecomposed charge densities).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53238,7 +52135,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_KSPACING",
                 "description": "The tag KSPACING determines the number of k-points if the KPOINTS file is not\npresent.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53253,7 +52150,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LADDER",
                 "description": "Controls whether the ladder diagrams are included in the BSE calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53268,7 +52165,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LAECHG",
                 "description": "When LAECHG=.TRUE. the all-electron charge density will be reconstructed\nexplicitly and written out to file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53283,7 +52180,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LAMBDA",
                 "description": "LAMBDA sets the weight with which the penalty terms of the constrained local\nmoment approach enter into the total energy expression and the Hamiltonian.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53298,7 +52195,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LANGEVIN_GAMMA",
                 "description": "LANGEVIN_GAMMA specifies the friction coefficients (in ps$^{-1}$) for atomic\ndegrees-of-freedom when using a Langevin thermostat (in case VASP was compiled\nwith -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53315,7 +52212,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LANGEVIN_GAMMA_L",
                 "description": "LANGEVIN_GAMMA_L specifies the friction coefficient (in ps$^{-1}$) for lattice\ndegrees-of-freedom in case of Parrinello-Rahman dynamics (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53330,7 +52227,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LASPH",
                 "description": "include non-spherical contributions related to the gradient of the density in the\nPAW spheres.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53345,7 +52242,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LASYNC",
                 "description": "This tag controls the overlap in communication.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53360,7 +52257,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LATTICE_CONSTRAINTS",
                 "description": "The tag LATTICE_CONSTRAINTS determines whether the lattice dynamics are released\n(LATTICE_CONSTRAINTS=.TRUE.) in the given directions or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53377,7 +52274,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LBERRY",
                 "description": "This tag is used in the the evaluation of the Berry phase expression for the\nelectronic polarization of an insulating system.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53392,7 +52289,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LBLUEOUT",
                 "description": "for LBLUEOUT=.TRUE., VASP writes output for the free-energy gradient calculation\nto the REPORT-file (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53407,7 +52304,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LBONE",
                 "description": "LBONE adds the small B-component to the chemical shift tensor.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53422,7 +52319,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCALCEPS",
                 "description": "for LCALCEPS=.TRUE. the macroscopic ion-clamped static dielectric tensor, Born\neffective charge tensors, and the ion-clamped piezoelectric tensor of the system\nare determined from the response to finite electric fields.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53437,7 +52334,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCALCPOL",
                 "description": "LCALCPOL=.TRUE. switches on the evaluation of the Berry phase expressions for the\nmacroscopic electronic polarization in accordance with the so-called Modern Theory\nof Polarization.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53452,7 +52349,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCHARG",
                 "description": "LCHARG determines whether the charge densities (files CHGCAR and CHG) are written.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53467,7 +52364,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCHIMAG",
                 "description": "calculate the chemical shifts by means of linear response.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53482,7 +52379,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCORR",
                 "description": "Controls whether Harris corrections are calculated or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53497,7 +52394,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAU",
                 "description": "LDAU=.TRUE. switches on the L(S)DA+U.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53512,7 +52409,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAUJ",
                 "description": "LDAUJ specifies the strength of the effective on-site exchange interactions.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53529,7 +52426,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAUL",
                 "description": "LDAUL specifies the _l_-quantum number for which the on-site interaction is added.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53546,7 +52443,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAUPRINT",
                 "description": "LDAUPRINT controls the verbosity of the L(S)DA+U routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53561,7 +52458,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAUTYPE",
                 "description": "LDAUTYPE specifies which type of L(S)DA+U approach will be used.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53576,7 +52473,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDAUU",
                 "description": "LDAUU specifies the strength of the effective on-site Coulomb interactions.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53593,7 +52490,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDIAG",
                 "description": "This tag determines whether a subspace diagonalization is performed or not within\nthe main algorithm selected by IALGO.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53608,7 +52505,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LDIPOL",
                 "description": "LDIPOL switches on corrections to the potential and forces in VASP. Can be applied\nfor charged molecules and  molecules and slabs with a net dipole moment.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53623,7 +52520,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LEFG",
                 "description": "The LEFG Computes the Electric Field Gradient at positions of the atomic nuclei.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53638,7 +52535,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LELF",
                 "description": "LELF determines whether to create an ELFCAR file or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53653,7 +52550,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LEPSILON",
                 "description": "LEPSILON=.TRUE. determines the static dielectric matrix, ion-clamped piezoelectric\ntensor and the Born effective charges using density functional perturbation\ntheory.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53668,7 +52565,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LFOCKAEDFT",
                 "description": "LFOCKAEDFT forces VASP to use the same charge augmentation for the Hartree and DFT\nexchange correlation part as is used in the Fock exchange and the many body beyond\nDFT methods, such as RPA, MP2 etc.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53683,7 +52580,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LHARTREE",
                 "description": "Controls whether the bubble diagrams are included in the BSE calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53698,7 +52595,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LHFCALC",
                 "description": "LHFCALC specifies whether Hartree-Fock/DFT hybrid functional type calculations are\nperformed.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53713,7 +52610,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LHYPERFINE",
                 "description": "compute the hyperfine tensors at the atomic sites (available as of vasp.5.3.2).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53728,7 +52625,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LKPROJ",
                 "description": "switches on the **k**-point projection scheme.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53743,7 +52640,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LLRAUG",
                 "description": "LLRAUG calculates the two-center contributions to the chemical shift tensor.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53758,7 +52655,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMAXFOCK",
                 "description": "LMAXFOCK sets the maximum angular momentum quantum number _L_ for the augmentation\nof charge densities in Hartree-Fock type routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53773,7 +52670,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMAXFOCKAE",
                 "description": "NMAXFOCKAE and LMAXFOCKAE determine whether the overlap densities in the Fock\nexchange and correlated wave function methods are accurately reconstructed on the\nplane wave grid. This flag generally only applies to the Fock-exchange part as\nwell as many-body post DFT methods (GW, RPA, MP2, etc.).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53788,7 +52685,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMAXMIX",
                 "description": "LMAXMIX controls up to which l-quantum number the one-center PAW charge densities\nare passed through the charge density mixer and written to the CHGCAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53803,7 +52700,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMAXPAW",
                 "description": "LMAXPAW sets the maximum _l_-quantum number for the evaluation of the one-center\nterms on the radial support grids in the PAW method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53818,7 +52715,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMAXTAU",
                 "description": "LMAXTAU is the maximum _l_-quantum number included in the PAW one-center expansion\nof the kinetic energy density.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -53833,7 +52730,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMIXTAU",
                 "description": "send the kinetic energy density through the density mixer as well.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53848,7 +52745,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LMONO",
                 "description": "LMONO switches on monopole-monopole corrections for the total energy.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53863,7 +52760,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LNABLA",
                 "description": "LNABLA=.TRUE. evaluates the transversal expression for the frequency dependent\ndielectric matrix.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53878,7 +52775,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LNMR_SYM_RED",
                 "description": "discard symmetry operations that are not consistent with the way _k_-space\nderivative are calculated in the linear response calculations of chemical shifts.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53893,7 +52790,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LNONCOLLINEAR",
                 "description": "LNONCOLLINEAR specifies whether fully non-collinear magnetic calculations are\nperformed.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53908,7 +52805,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LOCPROJ",
                 "description": "by means of the LOCPROJ-tag one may specify a (set of) local function(s) on which\nthe orbitals are to be projected. These projections are written to the PROJCAR,\nLOCPROJ, and vasprun.xml files.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53923,7 +52820,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LOPTICS",
                 "description": "LOPTICS=.TRUE. calculates the frequency dependent dielectric matrix after the\nelectronic ground state has been determined.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53938,7 +52835,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LORBIT",
                 "description": "LORBIT, together with an appropriate RWIGS, determines whether the PROCAR or\nPROOUT files are written.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53953,7 +52850,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LORBMOM",
                 "description": "LORBMOM specifies whether the orbital moments are written out or not (in a\ncalculation using LSORBIT=.TRUE.).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53968,7 +52865,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LPARD",
                 "description": "Determines whether partial (band or k-point decomposed) charge densities are\nevaluated. See also 'Band-decomposed charge densities' .",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53983,7 +52880,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LPEAD",
                 "description": "for LPEAD=.TRUE., the derivative of the cell-periodic part of the orbitals w.r.t.\n**k**  is calculated using finite differences.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -53998,7 +52895,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LPLANE",
                 "description": "LPLANE switches on the plane-wise data distribution in real space.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54013,7 +52910,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LREAL",
                 "description": "LREAL determines whether the projection operators are evaluated in real-space or\nin reciprocal space.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54028,7 +52925,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LRPA",
                 "description": "LRPA=.TRUE. includes local field effect on the Hartree level only.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54043,7 +52940,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSCAAWARE",
                 "description": "LSCAAWARE controls the distribution of the Hamilton matrix.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54058,7 +52955,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSCALAPACK",
                 "description": "LSCALAPACK controls the use of scaLAPACK.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54073,7 +52970,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSCALU",
                 "description": "LSCALU switches on the parallel LU decomposition (using scaLAPACK) in the\northonormalization of the wave functions.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54088,7 +52985,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSCSGRAD",
                 "description": "LSCSGRAD decides whether to compute gradients in the calculation of the MBD\ndispersion energy.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54103,7 +53000,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSELFENERGY",
                 "description": "This tag controls whether the frequency dependent self-energy is calculated or\nnot.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54118,7 +53015,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSEPB",
                 "description": "Specifies whether the charge density is calculated for every band separately and\nwritten to a file PARCHG.nb.* (LSEPB=.TRUE.) or whether charge density is merged\nfor all selected bands and written to the files PARCHG.ALLB.* or PARCHG.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54133,7 +53030,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSEPK",
                 "description": "Specifies whether the charge density of every k-point is write to the files\nPARCHG.*.nk (LSEPK=.TRUE.) or whether it is merged to a single file. If the merged\nfile is written, then the weight of each k-point is determined from the KPOINTS\nfile, otherwise the k-point weights of one are chosen.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54148,7 +53045,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSORBIT",
                 "description": "LSORBIT specifies whether spin-orbit coupling is taken into account.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54163,7 +53060,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSPECTRAL",
                 "description": "LSPECTRAL specifies to use the spectral method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54178,7 +53075,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSPECTRALGW",
                 "description": "LSPECTRALGW specifies to use the spectral method for calculating the self-energy.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54193,7 +53090,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSPIRAL",
                 "description": "set LSPIRAL=.TRUE. to represent spin spirals by means of a generalized Bloch\ncondition.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54208,7 +53105,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LSUBROT",
                 "description": "LSUBROT determines whether an optimal rotation matrix between the occupied and\nunoccupied block is sought, when a direct optimization of the energy functional is\nperformed (i.e. ALGO = All | Damped).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54223,7 +53120,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LTHOMAS",
                 "description": "LTHOMAS selects a decomposition of the exchange functional based on Thomas-Fermi\nscreening.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54238,7 +53135,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LUSE_VDW",
                 "description": "The flag LUSE_VDW determines whether the VdW-DF functional of Langreth and\nLundqvist et al. is used or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54253,7 +53150,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LVDW_EWALD",
                 "description": "LVDW_EWALD decides whether lattice summation in $E_{disp}$ expression by means of\nEwald's summation is computed in the DFT-D2 method (available in VASP.5.3.4 and\nlater).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54268,7 +53165,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LVDW_ONECELL",
                 "description": "LVDW_ONECELL  can be used to disable vdW interaction with mirror image in X Y Z\ndirection. This is advisable for molecular calculations in the gas phase. In all\nother cases, use the default.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54285,7 +53182,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LVDWEXPANSION",
                 "description": "LVDWEXPANSION  decides whether to write the two- to six- body contributions to MBD\ndispersion energy in the OUTCAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54300,7 +53197,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LVHAR",
                 "description": "This tag determines whether the total local potential (saved in the file LOCPOT)\ncontains the entire local potential (ionic + Hartree + exchange correlation) or\nthe electrostatic contributions only (ionic + Hartree).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54315,7 +53212,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LVTOT",
                 "description": "LVTOT determines whether the total local potential is written to the LOCPOT file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54330,7 +53227,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWANNIER90",
                 "description": "LWANNIER90=.TRUE. switches on the interface between VASP and WANNIER90.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54345,7 +53242,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWANNIER90_RUN",
                 "description": "LWANNIER90_RUN executes wannier_setup (see LWANNIER90=.TRUE.) and subsequently\nruns WANNIER90 in library mode (wannier_run).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54360,7 +53257,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWAVE",
                 "description": "LWAVE determines whether the wavefunctions are written to the WAVECAR file at the\nend of a run.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54375,7 +53272,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWRITE_MMN_AMN",
                 "description": "LWRITE_MMN_AMN=.TRUE. tells the VASP2WANNIER90 interface to write the\nwannier90.mmn and wannier90.amn files.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54390,7 +53287,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWRITE_UNK",
                 "description": "LWRITE_UNK decides whether the cell-periodic part of the relevant Bloch functions\nis written.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54405,7 +53302,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LWRITE_WANPROJ",
                 "description": "LWRITE_WANPROJ determines whether the Wannier projection fille WANPROJ is written.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54420,7 +53317,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LZEROZ",
                 "description": "for LZEROZ=.TRUE. the _z_-component of the spin-spiral magnetisation density will\nbe forced to be and to remain zero.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54435,7 +53332,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_M_CONSTR",
                 "description": "M_CONSTR specifies the desired local magnetic moment (size and/or direction) for\nthe constrained local moments approach.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54452,7 +53349,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MAGMOM",
                 "description": "MAGMOM Specifies the initial magnetic moment for each atom, if and only if\nICHARG=2, or if ICHARG=1 and the CHGCAR file contains no magnetisation density",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54467,7 +53364,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MAXMEM",
                 "description": "MAXMEM specifies the maximum memory one MPI rank will attempt to allocate (in\nMByte).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54482,7 +53379,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MAXMIX",
                 "description": "MAXMIX specifies the maximum number steps stored in Broyden mixer IMIX=4).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54497,7 +53394,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MDALGO",
                 "description": "MDALGO specifies the molecular dynamics simulation protocol (in case IBRION=0 and\nVASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54512,7 +53409,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_METAGGA",
                 "description": "selects one of various meta-GGA functionals.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54527,7 +53424,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MINROT",
                 "description": "The flag MINROT defines the value for which the dimer is rotated only if the\npredicted rotation angle is greater than MINROT (rad.) in the Improved Dimer\nMethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54542,7 +53439,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_MIXPRE",
                 "description": "MIXPRE specifies the metric in the Broyden mixing scheme(IMIX=4).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54557,7 +53454,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_AFILT2_MB",
                 "description": "This tag sets the filtering parameter for the angular filtering for\nML_FF_IAFILT2_MB in the machine learning force-field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54572,7 +53469,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_CDOUB",
                 "description": "This flag controls the necessity of DFT calculations in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54587,7 +53484,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_CSF",
                 "description": "This flag sets the threshold for the spilling factor in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54602,7 +53499,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_CSIG",
                 "description": "Parameter used in the automatic determination of threshold for Bayesian error\nestimation in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54617,7 +53514,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_CSLOPE",
                 "description": "Parameter used in the automatic determination of threshold for Bayesian error\nestimation in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54632,7 +53529,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_CTIFOR",
                 "description": "This flag sets the threshold for the Bayesian error estimation on the force in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54647,7 +53544,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_EATOM",
                 "description": "Reference total energies of isolated atoms used in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54664,7 +53561,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IAFILT2_MB",
                 "description": "This tag specifies the type of angular filtering used in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54679,7 +53576,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IBROAD1_MB",
                 "description": "This tag determines how the atomic distribution is broadened for the radial\ndescriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54694,7 +53591,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IBROAD2_MB",
                 "description": "This tag determines how the atomic distribution is broadened for the angular\ndescriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54709,7 +53606,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ICOUPLE_MB",
                 "description": "This tag specifies the atoms where the coupling parameter is introduced to\ncalculate the chemical potential within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54726,7 +53623,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ICUT1_MB",
                 "description": "This tag specifies the type of cutoff function used for the radial descriptor in\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54741,7 +53638,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ICUT2_MB",
                 "description": "This tag specifies the type of cutoff function used for the angular descriptor in\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54756,7 +53653,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IERR",
                 "description": "This tag selects the error estimation method used in the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54771,7 +53668,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IREG_MB",
                 "description": "This tag specifies whether the regularization parameters are kept constant or not\nin the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54786,7 +53683,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ISAMPLE",
                 "description": "This tag controls the sampling in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54801,7 +53698,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ISCALE_TOTEN_MB",
                 "description": "This tag specifies how to scale the energy data for the many-body term in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54816,7 +53713,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ISOAP1_MB",
                 "description": "This tag defines the type of the SOAP kernel for the radial descriptor in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54831,7 +53728,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ISOAP2_MB",
                 "description": "This tag defines the type of the SOAP kernel for the angular descriptor in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54846,7 +53743,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_ISTART",
                 "description": "This tag decides if and how calculations are continued from existing data in\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54861,7 +53758,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_IWEIGHT",
                 "description": "Flag to control the weighting of training data in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54876,7 +53773,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LAFILT2_MB",
                 "description": "This tag specifies whether angular filtering is applied or not within the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54891,7 +53788,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LBASIS_DISCARD",
                 "description": "This variable specifies whether the basis sets are thrown away when its number\nexceeds ML_FF_MB_MB in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54906,7 +53803,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LCONF_DISCARD",
                 "description": "This flag decides whether configurations that do not provide local reference\nconfigurations are discarded or not in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54921,7 +53818,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LCOUPLE_MB",
                 "description": "This tag specifies whether coupling parameters are used for the calculation of\nchemical potentials is used or not within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54936,7 +53833,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LCRITERIA",
                 "description": "Decides whether the threshold in the learning decision step for the Bayesian error\nestimation is renewed or not in the machine learning force field methods.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54951,7 +53848,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LEATOM_MB",
                 "description": "This term specifies whether the total atomic energy is written out or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54966,7 +53863,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LHEAT_MB",
                 "description": "This flag specifies whether the heat flux is calculated or not in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -54981,7 +53878,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LMAX2_MB",
                 "description": "This tag specifies the maximum angular momentum quantum number of spherical\nharmonics used to expand atomic distributions within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -54996,7 +53893,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LMLFF",
                 "description": "Main control tag whether to use machine learned force fields or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -55011,7 +53908,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LMLMB",
                 "description": "This controls whether the many-body interaction term is included in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -55026,7 +53923,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LNORM1_MB",
                 "description": "This tag specifies whether the radial descriptor is normalized (by dividing\nthrough it's norm) or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -55041,7 +53938,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_LNORM2_MB",
                 "description": "This tag specifies whether the angular descriptor is normalized (by dividing\nthrough it's norm) or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -55056,7 +53953,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MB_MB",
                 "description": "This flag sets the maximum number of basis sets describing the many-body\ninteractions in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55071,7 +53968,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MCONF",
                 "description": "This flag sets the maximum number of configurations used for training in the\nmachine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55086,7 +53983,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MCONF_NEW",
                 "description": "This flag sets the number of configurations that are stored temporally as\ncandidates for the training data in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55101,7 +53998,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MHIS",
                 "description": "This flag sets the number of estimated errors stored in memory to determine the\nthreshold for the Bayesian error in the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55116,7 +54013,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MRB1_MB",
                 "description": "This tag sets the number of radial basis sets used to expand the atomic\ndistribution for the radial descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55131,7 +54028,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MRB2_MB",
                 "description": "This tag sets the number of radial basis sets used to expand the atomic\ndistribution for the angular descriptor withtin the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55146,7 +54043,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MSPL1_MB",
                 "description": "This tag sets the number of points for the radial grid used in the spline\ninterpolation for the radial descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55161,7 +54058,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_MSPL2_MB",
                 "description": "This tag sets the number of points for the radial grid used in the spline\ninterpolation of the angular descriptor within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55176,7 +54073,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NATOM_COUPLED_MB",
                 "description": "This tag specifies the number of atoms for which a coupling parameter is\nintroduced to calculate the chemical potential within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55191,7 +54088,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NDIM_SCALAPACK",
                 "description": "This flag sets the dimension of the ScaLAPACK grids used in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55206,7 +54103,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NHYP1_MB",
                 "description": "Polynomial power of the radial kernel.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55221,7 +54118,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NHYP2_MB",
                 "description": "Polynomial parameter (power) of the SOAP kernel.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55236,7 +54133,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NMDINT",
                 "description": "Tag to control the minimum interval to get training samples in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55251,7 +54148,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NR1_MB",
                 "description": "This tag determines the number of grid points used to execute radial integrations\nto compute the radial descriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55266,7 +54163,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NR2_MB",
                 "description": "This tag determines the number of grid points used to execute radial integrations\nto compute the angular descriptor within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55281,7 +54178,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_NWRITE",
                 "description": "This tag controls part of the output within the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55296,7 +54193,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_RCOUPLE_MB",
                 "description": "This tag specifies the value of the coupling parameter for the calculation of the\nchemical potential within the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55311,7 +54208,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_RCUT1_MB",
                 "description": "This flag sets the cutoff radius for the radial descriptor in the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55326,7 +54223,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_RCUT2_MB",
                 "description": "This flag sets the cutoff radius for the angular descriptor in the machine\nlearning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55341,7 +54238,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_SIGV0_MB",
                 "description": "This flag sets the initial noise parameter in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55356,7 +54253,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_SIGW0_MB",
                 "description": "This flag sets the initial precision parameter in the machine learning force field\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55371,7 +54268,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_SION1_MB",
                 "description": "This tag specifies the width of the Gaussian functions used for broadening the\natomic distributions for the radial descriptor within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55386,7 +54283,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_SION2_MB",
                 "description": "This tag specifies the width of the Gaussian functions used for broadening the\natomic distributions of the angular descriptor within the machine learning force\nfield method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55401,7 +54298,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_W1_MB",
                 "description": "This tag defines the weight for the radial descriptor within the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55416,7 +54313,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_W2_MB",
                 "description": "This tag defines the weight for the angular descriptor within the machine learning\nforce field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55431,7 +54328,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_WTIFOR",
                 "description": "This tag sets the weight for the scaling of the forces in the training data within\nthe machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55446,7 +54343,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_WTOTEN",
                 "description": "This tag sets the weight for the scaling of the total energy in the training data\nwithin the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55461,7 +54358,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ML_FF_WTSIF",
                 "description": "This tag sets the weight for the scaling of the total energy in the training data\nwithin the machine learning force field method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55476,7 +54373,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBANDS",
                 "description": "NBANDS determines the actual number of bands in the calculation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55491,7 +54388,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBANDSGW",
                 "description": "The flag determines how many QP energies are calculated and updated in GW type\ncalculations.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55506,7 +54403,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBANDSO",
                 "description": "NBANDSO determines how many occupied orbitals are included in the Casida/BSE\ncalculations or time-propagation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55521,7 +54418,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBANDSV",
                 "description": "NBANDSV determines how many unoccupied orbitals are included in the Casida/BSE\ncalculations or timepropagation.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55536,7 +54433,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBLK",
                 "description": "NBLK determines the blocking factor in many BLAS level 3 routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55551,7 +54448,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBLOCK",
                 "description": "After NBLOCK ionic steps the pair correlation function and the DOS are calculated\nand the ionic configuration is written to the XDATCAR-file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55566,7 +54463,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBMOD",
                 "description": "Controls which bands are used in the calculation of Band decomposed charge\ndensities. Check also IBAND and EINT.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55581,7 +54478,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NBSEEIG",
                 "description": "NBSEEIG sets the number number of BSE eigenvectors written to the BSEFATBAND\noutput file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55596,7 +54493,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NCORE",
                 "description": "NCORE determines the number of compute cores that work on an individual orbital\n(available as of VASP.5.2.13).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55611,7 +54508,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NCRPA_BANDS",
                 "description": "Controls which bands are excluded in CRPA. Check also NTARGET_STATES.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55628,7 +54525,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NDAV",
                 "description": "NDAV sets the maximum number of iterative steps per bands per RMM-DIIS step\n(IALGO=4X).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55643,7 +54540,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NEDOS",
                 "description": "NEDOS specifies number of gridpoints on which the DOS is evaluated",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55658,7 +54555,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NELECT",
                 "description": "NELECT sets the number of electrons.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55673,7 +54570,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NELM",
                 "description": "NELM sets the maximum number of electronic SC (selfconsistency) steps which may be\nperformed.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55688,7 +54585,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NELMDL",
                 "description": "NELMDL specifies the number of non-selfconsistent steps at the beginning.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55703,7 +54600,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NELMIN",
                 "description": "NELMIN specifies the minimum number of electronic SCF steps.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55718,7 +54615,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NFREE",
                 "description": "depending on IBRION, NFREE specifies the number of remembered steps in the history\nof ionic convergence runs, or the number of ionic displacements in frozen phonon\ncalculations.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55733,7 +54630,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGX",
                 "description": "NGX sets the number of grid points in the FFT-grid along the first lattice vector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55748,7 +54645,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGXF",
                 "description": "NGXF sets the number of grid points in the fine FFT-grid along the first lattice\nvector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55763,7 +54660,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGY",
                 "description": "NGY sets the number of grid points in the FFT-grid along the second lattice\nvector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55778,7 +54675,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGYF",
                 "description": "NGYF sets the number of grid points in the fine FFT-grid along the second lattice\nvector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55793,7 +54690,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGYROMAG",
                 "description": "NGYROMAG specifies the nuclear gyromagnetic ratios (in MHz, for H<sub>0</sub> = 1\nT) for the atomic types on the POTCAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55810,7 +54707,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGZ",
                 "description": "NGZ sets the number of grid points in the FFT-grid along the third lattice vector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55825,7 +54722,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NGZF",
                 "description": "NGZF sets the number of grid points in the fine  FFT-grid along the first lattice\nvector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55840,7 +54737,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NKRED",
                 "description": "NKRED specifies an uniform reduction factor for the **q**-point grid\nrepresentation of the exact exchange potential and the correlation part in GW\ncalculations.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55855,7 +54752,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NKREDX",
                 "description": "NKREDX specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>1</sub>.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55870,7 +54767,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NKREDY",
                 "description": "NKREDY specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>2</sub>.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55885,7 +54782,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NKREDZ",
                 "description": "NKREDZ specifies a reduction factor for the **q**-point grid representation of the\nexact exchange potential along reciprocal space direction **b**<sub>3</sub>.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55900,7 +54797,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NLSPLINE",
                 "description": "construct the PAW projectors in reciprocal space using spline interpolation so\nthat they are _k_-differentiable.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -55915,7 +54812,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NMAXFOCKAE",
                 "description": "NMAXFOCKAE and LMAXFOCKAE determine whether the overlap densities in the Fock\nexchange and correlated wave function methods are accurately reconstructed on the\nplane wave grid. This flag generally only applies to the Fock-exchange part as\nwell as many-body post DFT methods (GW, RPA, MP2, etc.).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55930,7 +54827,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NOMEGA",
                 "description": "NOMEGA specifies the number of (imaginary) frequency and imaginary time grid\npoints.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55945,7 +54842,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NOMEGAPAR",
                 "description": "NOMEGAPAR available as of VASP.6, specifies the number of processor groups sharing\nthe same imaginary frequency grid points..",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55960,7 +54857,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NOMEGAR",
                 "description": "NOMEGAR specifies the number of frequency grid points along the real axis.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55975,7 +54872,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NPACO",
                 "description": "NPACO sets the number of slots in the pair-correlation function written to PCDAT.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -55990,7 +54887,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NPAR",
                 "description": "NPAR determines the number of bands that are treated in parallel.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56005,7 +54902,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NPPSTR",
                 "description": "NPPSTR specifies the number of k-points on the strings in the IGPAR direction.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56020,7 +54917,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NSIM",
                 "description": "NSIM sets the number of bands that are optimized simultaneously by the RMM-DIIS\nalgorithm.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56035,7 +54932,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NSUBSYS",
                 "description": "NSUBSYS defines the atomic subsystems in calculations with multiple Anderson\nthermostats (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56050,7 +54947,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NSW",
                 "description": "NSW sets the maximum number of ionic steps.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56065,7 +54962,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NTARGET_STATES",
                 "description": "Controls which Wannier states are excluded in CRPA. Check also NCRPA_BANDS.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56082,7 +54979,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NTAUPAR",
                 "description": "NTAUPAR available as of VASP.6, specifies the number of MPI groups sharing same\nimaginary time grid points. The default value of NTAUPAR is set automatically and\ndepends on MAXMEM, the available memory for each rank on one node.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56097,7 +54994,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NUPDOWN",
                 "description": "Sets the difference between the number of electrons in the up and down spin\ncomponents.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56112,7 +55009,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_NWRITE",
                 "description": "This flag determines how much will be written to the file OUTCAR ('verbosity\nflag').",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56127,7 +55024,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ODDONLY",
                 "description": "ODDONLY=.TRUE. selects a subset of **k**-points for the representation of the Fock\nexchange potential, with _C_<sub>1</sub>=_C_<sub>2</sub>=_C_<sub>3</sub>=1, and\n_n_<sub>1</sub>+_n_<sub>2</sub>+_n_<sub>3</sub> odd.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56142,7 +55039,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ODDONLYGW",
                 "description": "ODDONLYGW allows to avoid the inclusion of the  point in the evaluation of\nresponse functions (in GW calculations).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56157,7 +55054,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OFIELD_A",
                 "description": "The flag OFIELD_A sets the desired order parameter *Q*<sub>6</sub> in the\nInterface pinning method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56172,7 +55069,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OFIELD_KAPPA",
                 "description": "The flag OFIELD_KAPPA sets the strength of bias potential in units of 'eV/(unit of\nQ)$^2$' in the Interface pinning method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56187,7 +55084,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OFIELD_Q6_FAR",
                 "description": "The flag OFIELD_Q6_FAR sets the far fading distance (in Angstroms) for the\ncomputation of a continuous to *Q*<sub>6</sub> parameter in the Interface pinning\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56202,7 +55099,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OFIELD_Q6_NEAR",
                 "description": "The flag OFIELD_Q6_NEAR sets the near fading distance (in Angstroms) for the\ncomputation of a continuous *Q*<sub>6</sub> parameter in the Interface pinning\nmethod.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56217,7 +55114,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OMEGAMAX",
                 "description": "OMEGAMAX specifies the maximum frequency for dense part of the frequency grid. For\nCRPA calculations, OMEGAMAX is the frequency point of the interaction.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56232,7 +55129,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OMEGAMIN",
                 "description": "minimum frequency in the frequency grid.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56247,7 +55144,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_OMEGATL",
                 "description": "OMEGATL specifies the maximum frequency for coarse part of the frequency grid.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56262,7 +55159,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PARAM1",
                 "description": "The flag PARAM1 determines the first parameter used in the enhancement factor of\nthe optPBE-vdW and optB88-vdW functional.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56277,7 +55174,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PARAM2",
                 "description": "The flag PARAM2 determines the second parameter used in the enhancement factor of\nthe optPBE-vdW and optB88-vdW functional.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56292,7 +55189,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PFLAT",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56307,7 +55204,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PHON_LBOSE",
                 "description": "This flag determines whether random structures in the Monte-Carlo (MC) sampling\nare created according to Bose-Einstein or Maxwell-Boltzmann statistics.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56322,7 +55219,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PHON_LMC",
                 "description": "This flag controls whether electron-phonon interactions from Monte-Carlo sampling\nare calculated or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56337,7 +55234,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PHON_NSTRUCT",
                 "description": "This flag sets the number of structures for electron-phonon interactions from\nMonte-Carlo (MC) sampling.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56352,7 +55249,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PHON_NTLIST",
                 "description": "This flag sets the number temperatures for that the electron-phonon interactions\nusing the ZG configuration is evaluated.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56367,7 +55264,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PHON_TLIST",
                 "description": "This flag provides the list of temperatures for that the electron-phonon\ninteractions using the ZG configuration is evaluated.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56384,7 +55281,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PLEVEL",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56399,7 +55296,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PMASS",
                 "description": "PMASS assigns a fictitious mass (in amu) to the lattice degrees-of-freedom in case\nof Parrinello-Rahman dynamics (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56414,7 +55311,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_POMASS",
                 "description": "POMASS describes the mass of each atomic sphere in atomic units.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56429,7 +55326,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_POTIM",
                 "description": "POTIM sets the time step (MD) or step width scaling (ionic relaxations).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56444,7 +55341,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PREC",
                 "description": "PREC specifies the precision  mode.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56459,7 +55356,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PRECFOCK",
                 "description": "PRECFOCK controls the FFT grids used in the exact exchange routines (Hartree-Fock\nand hybrid functionals).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56474,7 +55371,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PROUTINE",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56489,7 +55386,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PSTRESS",
                 "description": "This flag controls whether Pulay corrections are added to the stress tensor or\nnot. In molecular dynamics calculations it controls the pressure. The unit of\nPSTRESS is in kB.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56504,7 +55401,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PSUBSYS",
                 "description": "PSUBSYS sets the collision probabilities for the atoms in each atomic subsystem in\ncalculations with multiple Anderson thermostats (in case VASP was compiled with\n-Dtbdyn). Note: 0 \u2264 PSUBSYS \u2264 1",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56521,7 +55418,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_PTHRESHOLD",
                 "description": "Control flag for the output of the profiling routines.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56536,7 +55433,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_QMAXFOCKAE",
                 "description": "The parameter QMAXFOCKAE controls at which wave vectors the local augmentation\ncharges are fitted to obtain an accurate charge augmentation on the plane wave\ngrid.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56553,7 +55450,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_QSPIRAL",
                 "description": "the QSPIRAL-tag specifies the spin spiral propagation vector.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56570,7 +55467,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_QUAD_EFG",
                 "description": "nuclear quadrupole moment (in millbarn) for the atomic types on the POTCAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56587,7 +55484,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_RANDOM_SEED",
                 "description": "RANDOM_SEED specifies the seed of the random-number-generator (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56604,7 +55501,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ROPT",
                 "description": "ROPT determines how precise the projectors are represented in real space.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56621,7 +55518,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_RWIGS",
                 "description": "RWIGS specifies the Wigner-Seitz radius for each atom type.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56638,7 +55535,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SAXIS",
                 "description": "SAXIS specifies the quantisation axis for noncollinear spins.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56655,7 +55552,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SCSRAD",
                 "description": "SCSRAD defines the cutoff radius (in Angs ) used in the calculation of\n$\\tau_{ij}$ within the Tkatchenko-Scheffler method. Self-consistent screening in\nTkatchenko-Scheffler method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56670,7 +55567,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SHAKEMAXITER",
                 "description": "SHAKEMAXITER specifies the maximum number of iterations in the SHAKE algorithm (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56685,7 +55582,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SHAKETOL",
                 "description": "SHAKETOL specifies the tolerance for the SHAKE algorithm (in case VASP was\ncompiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56700,7 +55597,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SIGMA",
                 "description": "SIGMA specifies the width of the smearing in eV.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56715,7 +55612,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SMASS",
                 "description": "SMASS controls the velocities during an ab-initio molecular dynamics run.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56730,7 +55627,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SMEARINGS",
                 "description": "SMEARINGS defines the smearing parameters for ISMEAR=-3 in the calculation of the\npartial occupancies.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56747,7 +55644,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SPRING",
                 "description": "SPRING gives the <i>spring constant</i> between the images as used in the elastic\nband method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56762,7 +55659,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_STEP_MAX",
                 "description": "The flag STEP_MAX defines the trust radius (upper limit) for the optimization step\n(in Angs ) in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56777,7 +55674,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_STEP_SIZE",
                 "description": "The flag STEP_SIZE defines the trial step size for the optimization step (in Angs\n) in the Improved Dimer Method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56792,7 +55689,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SYMPREC",
                 "description": "SYMPREC determines to which accuracy the positions in the POSCAR file must be\nspecified (as of VASP.4.4.4).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56807,7 +55704,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_SYSTEM",
                 "description": "The 'title string' defined by SYSTEM is for the user only and should help the user\nto identify what he wants to do with this specific input file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -56822,7 +55719,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_TEBEG",
                 "description": "TEBEG sets the start temperature for an ab-initio molecular dynamics run\n(IBRION=0) and other routines (e.g. Electron-phonon interactions from Monte-Carlo\nsampling).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56837,7 +55734,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_TEEND",
                 "description": "TEEND sets the final temperature for an ab-initio molecular dynamics run\n(IBRION=0; SMASS=\u22121).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56852,7 +55749,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_TIME",
                 "description": "TIME controls the time step for IALGO=5X and for the initial (steepest descent)\nphase of IALGO=4X.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56867,7 +55764,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_TSUBSYS",
                 "description": "TSUBSYS sets the temperatures for the atomic subsystems in calculations with\nmultiple Anderson thermostats (in case VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56884,7 +55781,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VALUE_MAX",
                 "description": "VALUE_MAX sets the upper limits for the monitoring of geometric parameters (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56901,7 +55798,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VALUE_MIN",
                 "description": "VALUE_MIN sets the lower limits for the monitoring of geometric parameters (in\ncase VASP was compiled with -Dtbdyn).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56918,7 +55815,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VCUTOFF",
                 "description": "The parameter VCUTOFF sets the energy cutoff for bare Coulomb matrix elements and\ncontrols the basis set for the bare Coulomb interaction.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56933,7 +55830,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_A1",
                 "description": "VDW_A1 defines the damping function parameter  in the DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56948,7 +55845,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_A2",
                 "description": "VDW_A2 defines the damping function parameter  in the DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56963,7 +55860,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_C6",
                 "description": "VDW_C6 defines the  $C_6$ parameters (units: J.nm$^6$mol$^{-1}$ ) for each species\ndefined in the POSCAR file within the DFT-D2 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56980,7 +55877,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_CNRADIUS",
                 "description": "VDW_CNRADIUS defines the cutoff radius (in Angs ) for the calculation of the\ncoordination numbers used in the DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -56995,7 +55892,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_D",
                 "description": "VDW_D defines the damping parameter _d_ in the DFT-D2method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57010,7 +55907,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_R0",
                 "description": "VDW_R0 defines the $R_0$ parameters (units: Angs ) for each species defined in the\nPOSCAR file within the DFT-D2 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57027,7 +55924,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_RADIUS",
                 "description": "VDW_RADIUS defines the cutoff radius (in Angs) for the pair interactions used in\nthe DFT-D2 and DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57042,7 +55939,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_S6",
                 "description": "VDW_S6 defines the global scaling factor _S_6_ in the DFT-D2 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57057,7 +55954,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_S8",
                 "description": "VDW_S8 defines the damping function parameter $s_8$ in the DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57072,7 +55969,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VDW_SR",
                 "description": "VDW_SR defines the damping function parameter $S_R$ (or scaling factor) in the\nDFT-D2 and DFT-D3 method.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57087,7 +55984,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_VOSKOWN",
                 "description": "Determines whether Vosko-Wilk-Nusair interpolation is used or not.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57102,7 +55999,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_WC",
                 "description": "WC specifies the weight factor for each step in Broyden mixing scheme (IMIX=4).",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57117,7 +56014,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_WEIMIN",
                 "description": "WEIMIN specifies the maximum weight for a band to be considered empty.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57132,7 +56029,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ZVAL",
                 "description": "ZVAL describes the valency of each atomic sphere.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57155,7 +56052,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 24,
+        "m_parent_index": 22,
         "m_parent_sub_section": "packages",
         "name": "electronicparsers.vasp.metainfo.vasp_incarsUnknown",
         "section_definitions": [
@@ -57176,7 +56073,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_ENMAX",
                 "description": "Maximum cutoff (normally specified only in POTCAR). Value prinded out after\nevaluating the input.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57191,7 +56088,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incar_ENMAX",
                 "description": "Maximum cutoff (normally specified only in POTCAR). Value prinded out after\nevaluating the input.",
                 "categories": [
-                  "/packages/22/category_definitions/0"
+                  "/packages/20/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "numpy",
@@ -57206,7 +56103,7 @@ window.nomadArtifacts = {
                 "name": "x_vasp_incarOut_LCOMPAT",
                 "description": "In vasp.4.2 the augmentation charges are forced to be zero at the boundary of the\naugmentation sphere, therefore results are slightly different from vasp.3.2\n(usually differences are smaller than 0.01 meV). The old behavior can be restored\nby setting LCOMPAT = .TRUE. in the INCAR file.",
                 "categories": [
-                  "/packages/23/category_definitions/0"
+                  "/packages/21/category_definitions/0"
                 ],
                 "type": {
                   "type_kind": "python",
@@ -57229,7 +56126,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 25,
+        "m_parent_index": 23,
         "m_parent_sub_section": "packages",
         "name": "nomad.datamodel.data",
         "section_definitions": [
@@ -57247,7 +56144,7 @@ window.nomadArtifacts = {
             "name": "EntryData",
             "description": "An empty base section definition. This can be used to add new top-level sections to an entry.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ]
           },
           {
@@ -57343,7 +56240,7 @@ window.nomadArtifacts = {
             "name": "User",
             "description": "A NOMAD user. Typically a NOMAD user has a NOMAD account. The user related data is managed by\nNOMAD keycloak user-management system. Users are used to denote authors,\nreviewers, and owners of datasets.",
             "base_sections": [
-              "/packages/25/section_definitions/2"
+              "/packages/23/section_definitions/2"
             ],
             "quantities": [
               {
@@ -57435,7 +56332,7 @@ window.nomadArtifacts = {
             "name": "ElnIntegrationCategory",
             "label": "Third-party ELN Integration",
             "categories": [
-              "/packages/25/category_definitions/0"
+              "/packages/23/category_definitions/0"
             ]
           },
           {
@@ -57445,7 +56342,7 @@ window.nomadArtifacts = {
             "name": "BasicElnCategory",
             "label": "Basic ELN",
             "categories": [
-              "/packages/25/category_definitions/0"
+              "/packages/23/category_definitions/0"
             ]
           },
           {
@@ -57455,7 +56352,7 @@ window.nomadArtifacts = {
             "name": "ElnExampleCategory",
             "label": "Example ELNs",
             "categories": [
-              "/packages/25/category_definitions/0"
+              "/packages/23/category_definitions/0"
             ]
           },
           {
@@ -57465,7 +56362,7 @@ window.nomadArtifacts = {
             "name": "UseCaseElnCategory",
             "label": "Use-cases",
             "categories": [
-              "/packages/25/category_definitions/0"
+              "/packages/23/category_definitions/0"
             ]
           },
           {
@@ -57475,14 +56372,14 @@ window.nomadArtifacts = {
             "name": "WorkflowsElnCategory",
             "label": "Workflows",
             "categories": [
-              "/packages/25/category_definitions/0"
+              "/packages/23/category_definitions/0"
             ]
           }
         ]
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 26,
+        "m_parent_index": 24,
         "m_parent_sub_section": "packages",
         "name": "nomad.datamodel.metainfo.basesections",
         "section_definitions": [
@@ -57496,7 +56393,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/BFO_0000001"
             ],
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -57585,7 +56482,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/BFO_0000002"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/0"
+              "/packages/24/section_definitions/0"
             ]
           },
           {
@@ -57595,7 +56492,7 @@ window.nomadArtifacts = {
             "name": "ActivityStep",
             "description": "Any dependant step of an `Activity`.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -57666,7 +56563,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/BFO_0000015"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/0"
+              "/packages/24/section_definitions/0"
             ],
             "quantities": [
               {
@@ -57725,7 +56622,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "steps",
                 "description": "An ordered list of all the dependant steps that make up this activity.",
-                "sub_section": "/packages/26/section_definitions/2",
+                "sub_section": "/packages/24/section_definitions/2",
                 "repeats": true
               }
             ]
@@ -57737,7 +56634,7 @@ window.nomadArtifacts = {
             "name": "SectionReference",
             "description": "A section used for referencing another section.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -57774,7 +56671,7 @@ window.nomadArtifacts = {
                 "description": "A reference to a NOMAD archive section.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/25/section_definitions/0"
+                  "type_data": "/packages/23/section_definitions/0"
                 }
               }
             ]
@@ -57786,7 +56683,7 @@ window.nomadArtifacts = {
             "name": "EntityReference",
             "description": "A section used for referencing an Entity.",
             "base_sections": [
-              "/packages/26/section_definitions/4"
+              "/packages/24/section_definitions/4"
             ],
             "quantities": [
               {
@@ -57805,7 +56702,7 @@ window.nomadArtifacts = {
                 "description": "A reference to a NOMAD `Entity` entry.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/26/section_definitions/1"
+                  "type_data": "/packages/24/section_definitions/1"
                 }
               },
               {
@@ -57835,7 +56732,7 @@ window.nomadArtifacts = {
             "name": "ExperimentStep",
             "description": "Any dependant step of an `Experiment`.",
             "base_sections": [
-              "/packages/26/section_definitions/2"
+              "/packages/24/section_definitions/2"
             ],
             "quantities": [
               {
@@ -57853,7 +56750,7 @@ window.nomadArtifacts = {
                 "description": "The activity that makes up this step of the experiment.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/26/section_definitions/3"
+                  "type_data": "/packages/24/section_definitions/3"
                 }
               },
               {
@@ -57884,7 +56781,7 @@ window.nomadArtifacts = {
             "name": "Experiment",
             "description": "A section for grouping activities together into an experiment.",
             "base_sections": [
-              "/packages/26/section_definitions/3"
+              "/packages/24/section_definitions/3"
             ],
             "sub_sections": [
               {
@@ -57893,7 +56790,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "steps",
                 "description": "An ordered list of all the dependant steps that make up this activity.",
-                "sub_section": "/packages/26/section_definitions/6",
+                "sub_section": "/packages/24/section_definitions/6",
                 "repeats": true
               }
             ]
@@ -57905,7 +56802,7 @@ window.nomadArtifacts = {
             "name": "Collection",
             "description": "A section for grouping entities together into a collection.",
             "base_sections": [
-              "/packages/26/section_definitions/1"
+              "/packages/24/section_definitions/1"
             ],
             "sub_sections": [
               {
@@ -57914,7 +56811,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "entities",
                 "description": "References to the entities that make up the collection.",
-                "sub_section": "/packages/26/section_definitions/5",
+                "sub_section": "/packages/24/section_definitions/5",
                 "repeats": true
               }
             ]
@@ -57929,7 +56826,7 @@ window.nomadArtifacts = {
               "label_quantity": "element"
             },
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -58114,7 +57011,7 @@ window.nomadArtifacts = {
             "name": "System",
             "description": "A base section for any system of materials which is investigated or used to construct other systems.",
             "base_sections": [
-              "/packages/26/section_definitions/1"
+              "/packages/24/section_definitions/1"
             ],
             "sub_sections": [
               {
@@ -58123,7 +57020,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "elemental_composition",
                 "description": "A list of all the elements found in the system together and their respective\natomic fraction within the system.",
-                "sub_section": "/packages/26/section_definitions/9",
+                "sub_section": "/packages/24/section_definitions/9",
                 "repeats": true
               }
             ]
@@ -58135,7 +57032,7 @@ window.nomadArtifacts = {
             "name": "Instrument",
             "description": "A base section that can be used for instruments.",
             "base_sections": [
-              "/packages/26/section_definitions/1"
+              "/packages/24/section_definitions/1"
             ]
           },
           {
@@ -58145,7 +57042,7 @@ window.nomadArtifacts = {
             "name": "InstrumentReference",
             "description": "A section used for referencing an Instrument.",
             "base_sections": [
-              "/packages/26/section_definitions/5"
+              "/packages/24/section_definitions/5"
             ],
             "quantities": [
               {
@@ -58164,7 +57061,7 @@ window.nomadArtifacts = {
                 "description": "A reference to a NOMAD `Instrument` entry.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/26/section_definitions/11"
+                  "type_data": "/packages/24/section_definitions/11"
                 }
               }
             ]
@@ -58176,7 +57073,7 @@ window.nomadArtifacts = {
             "name": "Component",
             "description": "A section for describing a component and its role in a composite system.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -58245,7 +57142,7 @@ window.nomadArtifacts = {
             "name": "SystemComponent",
             "description": "A section for describing a system component and its role in a composite system.",
             "base_sections": [
-              "/packages/26/section_definitions/13"
+              "/packages/24/section_definitions/13"
             ],
             "quantities": [
               {
@@ -58263,7 +57160,7 @@ window.nomadArtifacts = {
                 "description": "A reference to the component system.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/26/section_definitions/10"
+                  "type_data": "/packages/24/section_definitions/10"
                 }
               }
             ]
@@ -58275,7 +57172,7 @@ window.nomadArtifacts = {
             "name": "PureSubstanceSection",
             "description": "A sub section for describing any elemental, molecular or single phase pure substance.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -58501,7 +57398,7 @@ window.nomadArtifacts = {
             "name": "PureSubstanceComponent",
             "description": "A section for describing a substance component and its role in a composite system.",
             "base_sections": [
-              "/packages/26/section_definitions/13"
+              "/packages/24/section_definitions/13"
             ],
             "quantities": [
               {
@@ -58530,7 +57427,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "pure_substance",
                 "description": "Section describing the pure substance that is the component.",
-                "sub_section": "/packages/26/section_definitions/15"
+                "sub_section": "/packages/24/section_definitions/15"
               }
             ]
           },
@@ -58541,7 +57438,7 @@ window.nomadArtifacts = {
             "name": "CompositeSystem",
             "description": "A base section for a material systems composed of components. Each component of the composite system is of a (sub)type of `System`.",
             "base_sections": [
-              "/packages/26/section_definitions/10"
+              "/packages/24/section_definitions/10"
             ],
             "sub_sections": [
               {
@@ -58550,7 +57447,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "components",
                 "description": "A list of all the components of the composite system containing a name, reference\nto the system section and mass of that component.",
-                "sub_section": "/packages/26/section_definitions/13",
+                "sub_section": "/packages/24/section_definitions/13",
                 "repeats": true
               }
             ]
@@ -58562,7 +57459,7 @@ window.nomadArtifacts = {
             "name": "CompositeSystemReference",
             "description": "A section used for referencing a CompositeSystem.",
             "base_sections": [
-              "/packages/26/section_definitions/5"
+              "/packages/24/section_definitions/5"
             ],
             "quantities": [
               {
@@ -58581,7 +57478,7 @@ window.nomadArtifacts = {
                 "description": "A reference to a NOMAD `CompositeSystem` entry.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/26/section_definitions/17"
+                  "type_data": "/packages/24/section_definitions/17"
                 }
               }
             ]
@@ -58593,7 +57490,7 @@ window.nomadArtifacts = {
             "name": "ProcessStep",
             "description": "Any dependant step of a `Process`.",
             "base_sections": [
-              "/packages/26/section_definitions/2"
+              "/packages/24/section_definitions/2"
             ],
             "quantities": [
               {
@@ -58628,7 +57525,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/OBI_0000094"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/3"
+              "/packages/24/section_definitions/3"
             ],
             "quantities": [
               {
@@ -58658,7 +57555,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "steps",
                 "description": "An ordered list of all the dependant steps that make up this activity.",
-                "sub_section": "/packages/26/section_definitions/19",
+                "sub_section": "/packages/24/section_definitions/19",
                 "repeats": true
               },
               {
@@ -58667,7 +57564,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "instruments",
                 "description": "A list of all the instruments and their role in this process.",
-                "sub_section": "/packages/26/section_definitions/12",
+                "sub_section": "/packages/24/section_definitions/12",
                 "repeats": true
               },
               {
@@ -58676,7 +57573,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "samples",
                 "description": "The samples as that have undergone the process.",
-                "sub_section": "/packages/26/section_definitions/18",
+                "sub_section": "/packages/24/section_definitions/18",
                 "repeats": true
               }
             ]
@@ -58688,7 +57585,7 @@ window.nomadArtifacts = {
             "name": "ActivityResult",
             "description": "A section for the results of an `Activity`.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -58719,7 +57616,7 @@ window.nomadArtifacts = {
             "name": "AnalysisResult",
             "description": "A section for the results of an `Analysis` process.",
             "base_sections": [
-              "/packages/26/section_definitions/21"
+              "/packages/24/section_definitions/21"
             ]
           },
           {
@@ -58732,7 +57629,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/OBI_0200000"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/3"
+              "/packages/24/section_definitions/3"
             ],
             "sub_sections": [
               {
@@ -58741,7 +57638,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "inputs",
                 "description": "The input data of the analysis.",
-                "sub_section": "/packages/26/section_definitions/4",
+                "sub_section": "/packages/24/section_definitions/4",
                 "repeats": true
               },
               {
@@ -58750,7 +57647,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "outputs",
                 "description": "The output data of the analysis.",
-                "sub_section": "/packages/26/section_definitions/22",
+                "sub_section": "/packages/24/section_definitions/22",
                 "repeats": true
               }
             ]
@@ -58765,7 +57662,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/CHMO_0001301"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/20"
+              "/packages/24/section_definitions/20"
             ]
           },
           {
@@ -58775,7 +57672,7 @@ window.nomadArtifacts = {
             "name": "MeasurementResult",
             "description": "A section for the results of an `Measurement` process.",
             "base_sections": [
-              "/packages/26/section_definitions/21"
+              "/packages/24/section_definitions/21"
             ]
           },
           {
@@ -58788,7 +57685,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/OBI_0000070"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/3"
+              "/packages/24/section_definitions/3"
             ],
             "sub_sections": [
               {
@@ -58797,7 +57694,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "samples",
                 "description": "A list of all the samples measured during the measurement.",
-                "sub_section": "/packages/26/section_definitions/18",
+                "sub_section": "/packages/24/section_definitions/18",
                 "repeats": true
               },
               {
@@ -58806,7 +57703,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "instruments",
                 "description": "A list of all the instruments and their role in this process.",
-                "sub_section": "/packages/26/section_definitions/12",
+                "sub_section": "/packages/24/section_definitions/12",
                 "repeats": true
               },
               {
@@ -58815,7 +57712,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "description": "The result of the measurement.",
-                "sub_section": "/packages/26/section_definitions/25",
+                "sub_section": "/packages/24/section_definitions/25",
                 "repeats": true
               }
             ]
@@ -58830,7 +57727,7 @@ window.nomadArtifacts = {
               "http://purl.obolibrary.org/obo/CHEBI_23367"
             ],
             "base_sections": [
-              "/packages/26/section_definitions/10"
+              "/packages/24/section_definitions/10"
             ],
             "quantities": [
               {
@@ -58898,7 +57795,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "pure_substance",
                 "description": "Section with properties describing the substance.",
-                "sub_section": "/packages/26/section_definitions/15"
+                "sub_section": "/packages/24/section_definitions/15"
               }
             ]
           },
@@ -58910,7 +57807,7 @@ window.nomadArtifacts = {
             "label": "PubChem Pure Substance Section",
             "description": "A section for pure substances existing as \"compounds\" in the PubChem database.",
             "base_sections": [
-              "/packages/26/section_definitions/15"
+              "/packages/24/section_definitions/15"
             ],
             "quantities": [
               {
@@ -58956,7 +57853,7 @@ window.nomadArtifacts = {
             "name": "CASExperimentalProperty",
             "description": "A section for experimental properties retrieved from the CAS API.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59001,7 +57898,7 @@ window.nomadArtifacts = {
             "name": "CASPropertyCitation",
             "description": "A section for citations of the experimental properties retrieved from the CAS API.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59049,7 +57946,7 @@ window.nomadArtifacts = {
             "label": "CAS Pure Substance Section",
             "description": "A base section for any `PureSubstance` with a CAS number.",
             "base_sections": [
-              "/packages/26/section_definitions/15"
+              "/packages/24/section_definitions/15"
             ],
             "quantities": [
               {
@@ -59153,7 +58050,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "cas_experimental_properties",
-                "sub_section": "/packages/26/section_definitions/29",
+                "sub_section": "/packages/24/section_definitions/29",
                 "repeats": true
               },
               {
@@ -59161,7 +58058,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
                 "name": "cas_property_citations",
-                "sub_section": "/packages/26/section_definitions/30",
+                "sub_section": "/packages/24/section_definitions/30",
                 "repeats": true
               }
             ]
@@ -59173,7 +58070,7 @@ window.nomadArtifacts = {
             "name": "ReadableIdentifiers",
             "description": "A base section that can be used to generate readable IDs. If the `owner`, `short_name`, `institute`, and `datetime`\nquantities are provided, the lab_id will be automatically created as a combination\nof these four quantities.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59276,7 +58173,7 @@ window.nomadArtifacts = {
             "name": "PublicationReference",
             "description": "A base section that can be used for references.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59359,14 +58256,14 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "HDF5Normalizer",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ]
           }
         ]
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 27,
+        "m_parent_index": 25,
         "m_parent_sub_section": "packages",
         "name": "nomad.datamodel.metainfo.common",
         "section_definitions": [
@@ -59408,7 +58305,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "provenance",
-                "sub_section": "/packages/27/section_definitions/0",
+                "sub_section": "/packages/25/section_definitions/0",
                 "repeats": false
               }
             ]
@@ -59426,7 +58323,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 28,
+        "m_parent_index": 26,
         "m_parent_sub_section": "packages",
         "name": "nomad.datamodel.metainfo.workflow",
         "section_definitions": [
@@ -59437,7 +58334,7 @@ window.nomadArtifacts = {
             "name": "Link",
             "description": "Instances of Link are used to represent either a single input or single output of a Task. Using a separate section for links allows to put\nadditional information (e.g. a name) on an input or output.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59473,7 +58370,7 @@ window.nomadArtifacts = {
                 "description": "A reference to the section that contains the actual input or output data.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/25/section_definitions/0"
+                  "type_data": "/packages/23/section_definitions/0"
                 }
               }
             ]
@@ -59485,7 +58382,7 @@ window.nomadArtifacts = {
             "name": "Task",
             "description": "Instances of Task are used to represent an activity that happened during workflow execution and that was acting on inputs to produce outputs.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -59514,7 +58411,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "inputs",
                 "description": "All the links to sections that represent the inputs for this task.",
-                "sub_section": "/packages/28/section_definitions/0",
+                "sub_section": "/packages/26/section_definitions/0",
                 "repeats": true
               },
               {
@@ -59523,7 +58420,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "outputs",
                 "description": "All the links to sections that represent the outputs for this task.",
-                "sub_section": "/packages/28/section_definitions/0",
+                "sub_section": "/packages/26/section_definitions/0",
                 "repeats": true
               }
             ]
@@ -59535,7 +58432,7 @@ window.nomadArtifacts = {
             "name": "TaskReference",
             "description": "A proxy section that can be used to compose a workflow of tasks that are contained in a different entry or workflow.",
             "base_sections": [
-              "/packages/28/section_definitions/1"
+              "/packages/26/section_definitions/1"
             ],
             "quantities": [
               {
@@ -59553,7 +58450,7 @@ window.nomadArtifacts = {
                 "description": "A reference to the task that this section is a proxy for.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/28/section_definitions/1"
+                  "type_data": "/packages/26/section_definitions/1"
                 }
               }
             ]
@@ -59565,11 +58462,11 @@ window.nomadArtifacts = {
             "name": "Workflow",
             "description": "Instances of Workflow are used to represent a set of Tasks that connect input and output data objects to produce a provenance graph for those data.\n\nWorkflows themselves can be tasks. This allows to build nested workflows where some\nof the workflow tasks are workflows themselves.",
             "categories": [
-              "/packages/25/category_definitions/5"
+              "/packages/23/category_definitions/5"
             ],
             "base_sections": [
-              "/packages/28/section_definitions/1",
-              "/packages/25/section_definitions/1"
+              "/packages/26/section_definitions/1",
+              "/packages/23/section_definitions/1"
             ],
             "sub_sections": [
               {
@@ -59578,7 +58475,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "tasks",
                 "description": "The tasks of this workflow as a repeating sub section. Use TaskReference if tasks cannot be contained.",
-                "sub_section": "/packages/28/section_definitions/1",
+                "sub_section": "/packages/26/section_definitions/1",
                 "repeats": true
               }
             ]
@@ -59587,7 +58484,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 29,
+        "m_parent_index": 27,
         "m_parent_sub_section": "packages",
         "name": "nomad.datamodel.optimade",
         "section_definitions": [
@@ -60290,7 +59187,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "species",
-                "sub_section": "/packages/29/section_definitions/0",
+                "sub_section": "/packages/27/section_definitions/0",
                 "repeats": true
               }
             ]
@@ -60299,7 +59196,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 30,
+        "m_parent_index": 28,
         "m_parent_sub_section": "packages",
         "name": "nomad.metainfo.metainfo",
         "section_definitions": [
@@ -60365,7 +59262,7 @@ window.nomadArtifacts = {
                 "description": "All metainfo definitions can be put into one or more `categories`.\nCategories allow to organize the definitions themselves. It is different from\nsections, which organize the data (e.g. quantity values) and not the definitions\nof data (e.g. quantities definitions). See :ref:`metainfo-categories` for more\ndetails.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/5"
+                  "type_data": "/packages/28/section_definitions/5"
                 },
                 "shape": [
                   "0..*"
@@ -60443,7 +59340,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "attributes",
                 "description": "The attributes that can further qualify property values.",
-                "sub_section": "/packages/30/section_definitions/1",
+                "sub_section": "/packages/28/section_definitions/1",
                 "repeats": true
               }
             ]
@@ -60455,7 +59352,7 @@ window.nomadArtifacts = {
             "name": "Attribute",
             "description": "Attributes can be used to qualify all properties (subsections and quantities) with simple primitive values.",
             "base_sections": [
-              "/packages/30/section_definitions/0"
+              "/packages/28/section_definitions/0"
             ],
             "constraints": [
               "is_primitive"
@@ -60496,7 +59393,7 @@ window.nomadArtifacts = {
             "name": "Property",
             "description": "A common base-class for section properties: subsections and quantities.",
             "base_sections": [
-              "/packages/30/section_definitions/0"
+              "/packages/28/section_definitions/0"
             ]
           },
           {
@@ -60506,7 +59403,7 @@ window.nomadArtifacts = {
             "name": "Section",
             "description": "Instances of the class :class:`Section` are created by writing Python classes that extend :class:`MSection` like this:\n\n.. code-block:: python\n\n    class SectionName(BaseSection):\n        ''' Section description '''\n        m_def = Section(**section_attributes)\n\n        quantity_name = Quantity(**quantity_attributes)\n        sub_section_name = SubSection(**sub_section_attributes)\n\nWe call such classes *section classes*. They are not the *section definition*, but just\nrepresentation of it in Python syntax. The *section definition* (in instance of :class:`Section`)\nwill be created for each of these classes and stored in the ``m_def`` property. See\n:ref:`metainfo-reflection` for more details.\n\nMost of the attributes for a :class:`Section` instance will be set automatically from\nthe section class:",
             "base_sections": [
-              "/packages/30/section_definitions/0"
+              "/packages/28/section_definitions/0"
             ],
             "constraints": [
               "resolved_base_sections",
@@ -60520,7 +59417,7 @@ window.nomadArtifacts = {
                 "name": "base_sections",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/3"
+                  "type_data": "/packages/28/section_definitions/3"
                 },
                 "shape": [
                   "0..*"
@@ -60534,7 +59431,7 @@ window.nomadArtifacts = {
                 "name": "extending_sections",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/3"
+                  "type_data": "/packages/28/section_definitions/3"
                 },
                 "shape": [
                   "0..*"
@@ -60559,7 +59456,7 @@ window.nomadArtifacts = {
                 "name": "inheriting_sections",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/3"
+                  "type_data": "/packages/28/section_definitions/3"
                 },
                 "shape": [
                   "0..*"
@@ -60747,7 +59644,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "quantities",
-                "sub_section": "/packages/30/section_definitions/6",
+                "sub_section": "/packages/28/section_definitions/6",
                 "repeats": true
               },
               {
@@ -60755,7 +59652,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
                 "name": "sub_sections",
-                "sub_section": "/packages/30/section_definitions/7",
+                "sub_section": "/packages/28/section_definitions/7",
                 "repeats": true
               },
               {
@@ -60769,7 +59666,7 @@ window.nomadArtifacts = {
                   "inner_sections",
                   "sections"
                 ],
-                "sub_section": "/packages/30/section_definitions/3",
+                "sub_section": "/packages/28/section_definitions/3",
                 "repeats": true
               }
             ]
@@ -60781,7 +59678,7 @@ window.nomadArtifacts = {
             "name": "Package",
             "description": "Packages organize metainfo definitions alongside Python modules Each Python module with metainfo Definition (explicitly or implicitly) has a member\n``m_package`` with an instance of this class. Definitions (categories, sections) in\nPython modules are automatically added to the module's :class:`Package`.\nPackages are not nested and rather have the fully qualified Python module name as\nname.\n\nThis allows to inspect all definitions in a Python module and automatically puts\nmodule name and docstring as :class:`Package` name and description.\n\nBesides the regular :class:`Definition` attributes, packages can have the following\nattributes:",
             "base_sections": [
-              "/packages/30/section_definitions/0"
+              "/packages/28/section_definitions/0"
             ],
             "quantities": [
               {
@@ -60822,7 +59719,7 @@ window.nomadArtifacts = {
                   "section_defs",
                   "sections"
                 ],
-                "sub_section": "/packages/30/section_definitions/3",
+                "sub_section": "/packages/28/section_definitions/3",
                 "repeats": true
               },
               {
@@ -60834,7 +59731,7 @@ window.nomadArtifacts = {
                 "aliases": [
                   "category_defs"
                 ],
-                "sub_section": "/packages/30/section_definitions/5",
+                "sub_section": "/packages/28/section_definitions/5",
                 "repeats": true
               }
             ]
@@ -60846,7 +59743,7 @@ window.nomadArtifacts = {
             "name": "Category",
             "description": "Categories allow to organize metainfo definitions (not metainfo data like sections do) Each definition, including categories themselves, can belong to a set of categories.\nCategories therefore form a hierarchy of concepts that definitions can belong to, i.e.\nthey form a `is a` relationship.",
             "base_sections": [
-              "/packages/30/section_definitions/0"
+              "/packages/28/section_definitions/0"
             ]
           },
           {
@@ -60856,7 +59753,7 @@ window.nomadArtifacts = {
             "name": "Quantity",
             "description": "To define quantities, instantiate :class:`Quantity` as a class attribute values in a `section classes`. The name of a quantity is automatically taken from its `section class`\nattribute. You can provide all other attributes to the constructor with keyword arguments\n\nSee :ref:`metainfo-sections` to learn about `section classes`.\nIn Python terms, ``Quantity`` is a descriptor. Descriptors define how to get and\nset attributes in a Python object. This allows us to use sections like regular\nPython objects and quantity like regular Python attributes.\n\nEach quantity must define a basic data type and a shape. The values of a quantity must\nfulfil the given type. The default shape is a single value. Quantities can also have\nphysical units. Units are applied to all values.",
             "base_sections": [
-              "/packages/30/section_definitions/2"
+              "/packages/28/section_definitions/2"
             ],
             "constraints": [
               "correct_dimensionality",
@@ -61000,7 +59897,7 @@ window.nomadArtifacts = {
             "name": "SubSection",
             "description": "Like quantities, subsections are defined in a `section class` as attributes of this class. Unlike quantities, each subsection definition becomes a property of\nthe corresponding `section definition` (parent). A subsection definition references\nanother `section definition` as the subsection (child). As a consequence, parent\n`section instances` can contain child `section instances` as subsections.\n\nContrary to the old NOMAD metainfo, we distinguish between subsection the section\nand subsection the property. This allows to use on child `section definition` as\nsubsection of many parent `section definitions`.",
             "base_sections": [
-              "/packages/30/section_definitions/2"
+              "/packages/28/section_definitions/2"
             ],
             "constraints": [
               "has_sub_section"
@@ -61019,7 +59916,7 @@ window.nomadArtifacts = {
                 ],
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/30/section_definitions/3"
+                  "type_data": "/packages/28/section_definitions/3"
                 }
               },
               {
@@ -61074,7 +59971,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "packages",
                 "description": "Packages in this environment.",
-                "sub_section": "/packages/30/section_definitions/4",
+                "sub_section": "/packages/28/section_definitions/4",
                 "repeats": true
               }
             ]
@@ -61235,7 +60132,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 31,
+        "m_parent_index": 29,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.chemical_reaction",
         "section_definitions": [
@@ -61312,7 +60209,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/31/section_definitions/0"
+                "sub_section": "/packages/29/section_definitions/0"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -61320,9 +60217,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/31/section_definitions/1"
+                "sub_section": "/packages/29/section_definitions/1"
               }
             ]
           }
@@ -61330,7 +60227,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 32,
+        "m_parent_index": 30,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.dmft",
         "section_definitions": [
@@ -61419,7 +60316,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/32/section_definitions/1"
+                "sub_section": "/packages/30/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -61427,9 +60324,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/32/section_definitions/0"
+                "sub_section": "/packages/30/section_definitions/0"
               }
             ]
           }
@@ -61437,7 +60334,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 33,
+        "m_parent_index": 31,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.elastic",
         "section_definitions": [
@@ -61448,7 +60345,7 @@ window.nomadArtifacts = {
             "name": "StrainDiagrams",
             "description": "Section containing the information regarding the elastic strains.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -61620,7 +60517,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "ElasticResults",
             "base_sections": [
-              "/packages/43/section_definitions/2"
+              "/packages/41/section_definitions/2"
             ],
             "quantities": [
               {
@@ -62005,7 +60902,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "strain_diagrams",
-                "sub_section": "/packages/33/section_definitions/0",
+                "sub_section": "/packages/31/section_definitions/0",
                 "repeats": true
               }
             ]
@@ -62024,7 +60921,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/33/section_definitions/1"
+                "sub_section": "/packages/31/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -62032,9 +60929,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/33/section_definitions/2"
+                "sub_section": "/packages/31/section_definitions/2"
               }
             ]
           }
@@ -62042,7 +60939,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 34,
+        "m_parent_index": 32,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.equation_of_state",
         "section_definitions": [
@@ -62076,7 +60973,7 @@ window.nomadArtifacts = {
             "name": "EOSFit",
             "description": "Section containing results of an equation of state fit.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -62229,7 +61126,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "eos_fit",
-                "sub_section": "/packages/34/section_definitions/1",
+                "sub_section": "/packages/32/section_definitions/1",
                 "repeats": true
               }
             ]
@@ -62248,7 +61145,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/34/section_definitions/0"
+                "sub_section": "/packages/32/section_definitions/0"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -62256,9 +61153,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/34/section_definitions/2"
+                "sub_section": "/packages/32/section_definitions/2"
               }
             ]
           }
@@ -62266,7 +61163,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 35,
+        "m_parent_index": 33,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.geometry_optimization",
         "section_definitions": [
@@ -62528,7 +61425,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/35/section_definitions/0"
+                "sub_section": "/packages/33/section_definitions/0"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -62536,9 +61433,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/35/section_definitions/1"
+                "sub_section": "/packages/33/section_definitions/1"
               }
             ]
           }
@@ -62546,7 +61443,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 36,
+        "m_parent_index": 34,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.gw",
         "section_definitions": [
@@ -62616,7 +61513,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/36/section_definitions/1"
+                "sub_section": "/packages/34/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -62624,9 +61521,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/36/section_definitions/0"
+                "sub_section": "/packages/34/section_definitions/0"
               }
             ]
           }
@@ -62634,7 +61531,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 37,
+        "m_parent_index": 35,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.max_ent",
         "section_definitions": [
@@ -62715,7 +61612,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/37/section_definitions/1"
+                "sub_section": "/packages/35/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -62723,9 +61620,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/37/section_definitions/0"
+                "sub_section": "/packages/35/section_definitions/0"
               }
             ]
           }
@@ -62733,7 +61630,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 38,
+        "m_parent_index": 36,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.molecular_dynamics",
         "section_definitions": [
@@ -62744,7 +61641,7 @@ window.nomadArtifacts = {
             "name": "ThermostatParameters",
             "description": "Section containing the parameters pertaining to the thermostat for a molecular dynamics run.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -62920,7 +61817,7 @@ window.nomadArtifacts = {
             "name": "BarostatParameters",
             "description": "Section containing the parameters pertaining to the barostat for a molecular dynamics run.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -63122,7 +62019,7 @@ window.nomadArtifacts = {
             "name": "ShearParameters",
             "description": "Section containing the parameters pertaining to the shear flow for a molecular dynamics run.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -63190,7 +62087,7 @@ window.nomadArtifacts = {
             "name": "Lambdas",
             "description": "Section for storing all lambda parameters for free energy perturbation",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -63234,7 +62131,7 @@ window.nomadArtifacts = {
             "name": "FreeEnergyCalculationParameters",
             "description": "Section containing the parameters pertaining to a free energy calculation workflow that interpolates between two system states (defined via the interpolation parameter lambda).\nThe parameters are stored for each molecular dynamics run separately, to be referenced\nby the overarching workflow.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -63356,7 +62253,7 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "lambdas",
                 "description": "Contains the lists of lambda values defined for the interpolation of the system.",
-                "sub_section": "/packages/38/section_definitions/3",
+                "sub_section": "/packages/36/section_definitions/3",
                 "repeats": true
               }
             ]
@@ -63498,7 +62395,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "thermostat_parameters",
-                "sub_section": "/packages/38/section_definitions/0",
+                "sub_section": "/packages/36/section_definitions/0",
                 "repeats": true
               },
               {
@@ -63506,7 +62403,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
                 "name": "barostat_parameters",
-                "sub_section": "/packages/38/section_definitions/1",
+                "sub_section": "/packages/36/section_definitions/1",
                 "repeats": true
               },
               {
@@ -63514,7 +62411,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 2,
                 "m_parent_sub_section": "sub_sections",
                 "name": "shear_parameters",
-                "sub_section": "/packages/38/section_definitions/2",
+                "sub_section": "/packages/36/section_definitions/2",
                 "repeats": true
               },
               {
@@ -63522,7 +62419,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 3,
                 "m_parent_sub_section": "sub_sections",
                 "name": "free_energy_calculation_parameters",
-                "sub_section": "/packages/38/section_definitions/4",
+                "sub_section": "/packages/36/section_definitions/4",
                 "repeats": true
               }
             ]
@@ -63534,7 +62431,7 @@ window.nomadArtifacts = {
             "name": "Property",
             "description": "Generic parent section for all property types.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -63632,7 +62529,7 @@ window.nomadArtifacts = {
             "name": "EnsemblePropertyValues",
             "description": "Generic section containing information regarding the values of an ensemble property.",
             "base_sections": [
-              "/packages/38/section_definitions/7"
+              "/packages/36/section_definitions/7"
             ],
             "quantities": [
               {
@@ -63732,7 +62629,7 @@ window.nomadArtifacts = {
             "name": "RadialDistributionFunctionValues",
             "description": "Section containing information regarding the values of radial distribution functions (rdfs).",
             "base_sections": [
-              "/packages/38/section_definitions/8"
+              "/packages/36/section_definitions/8"
             ],
             "quantities": [
               {
@@ -63773,7 +62670,7 @@ window.nomadArtifacts = {
             "name": "EnsembleProperty",
             "description": "Generic section containing information about a calculation of any static observable from a trajectory (i.e., from an ensemble average).",
             "base_sections": [
-              "/packages/38/section_definitions/6"
+              "/packages/36/section_definitions/6"
             ],
             "quantities": [
               {
@@ -63821,7 +62718,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "ensemble_property_values",
-                "sub_section": "/packages/38/section_definitions/8",
+                "sub_section": "/packages/36/section_definitions/8",
                 "repeats": true
               }
             ]
@@ -63833,7 +62730,7 @@ window.nomadArtifacts = {
             "name": "RadialDistributionFunction",
             "description": "Section containing information about the calculation of radial distribution functions (rdfs).",
             "base_sections": [
-              "/packages/38/section_definitions/10"
+              "/packages/36/section_definitions/10"
             ],
             "sub_sections": [
               {
@@ -63841,7 +62738,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "radial_distribution_function_values",
-                "sub_section": "/packages/38/section_definitions/9",
+                "sub_section": "/packages/36/section_definitions/9",
                 "repeats": true
               }
             ]
@@ -63853,7 +62750,7 @@ window.nomadArtifacts = {
             "name": "TrajectoryProperty",
             "description": "Generic section containing information about a calculation of any observable defined and stored at each individual frame of a trajectory.",
             "base_sections": [
-              "/packages/38/section_definitions/6"
+              "/packages/36/section_definitions/6"
             ],
             "quantities": [
               {
@@ -63946,7 +62843,7 @@ window.nomadArtifacts = {
             "name": "RadiusOfGyration",
             "description": "Section containing information about the calculation of radius of gyration (Rg).",
             "base_sections": [
-              "/packages/38/section_definitions/12"
+              "/packages/36/section_definitions/12"
             ],
             "quantities": [
               {
@@ -63987,7 +62884,7 @@ window.nomadArtifacts = {
             "name": "FreeEnergyCalculations",
             "description": "Section containing information regarding the instantaneous (i.e., for a single configuration) values of free energies calculated via thermodynamic perturbation.\nThe values stored are actually infinitesimal changes in the free energy, determined as derivatives\nof the Hamiltonian with respect to the coupling parameter (lambda) defining each state for the perturbation.",
             "base_sections": [
-              "/packages/38/section_definitions/12"
+              "/packages/36/section_definitions/12"
             ],
             "quantities": [
               {
@@ -63998,7 +62895,7 @@ window.nomadArtifacts = {
                 "description": "Links the free energy results with the method parameters.",
                 "type": {
                   "type_kind": "reference",
-                  "type_data": "/packages/38/section_definitions/4"
+                  "type_data": "/packages/36/section_definitions/4"
                 },
                 "shape": []
               },
@@ -64087,7 +62984,7 @@ window.nomadArtifacts = {
             "name": "DiffusionConstantValues",
             "description": "Section containing information regarding the diffusion constants.",
             "base_sections": [
-              "/packages/38/section_definitions/7"
+              "/packages/36/section_definitions/7"
             ],
             "quantities": [
               {
@@ -64124,7 +63021,7 @@ window.nomadArtifacts = {
             "name": "CorrelationFunctionValues",
             "description": "Generic section containing information regarding the values of a correlation function.",
             "base_sections": [
-              "/packages/38/section_definitions/7"
+              "/packages/36/section_definitions/7"
             ],
             "quantities": [
               {
@@ -64189,7 +63086,7 @@ window.nomadArtifacts = {
             "name": "MeanSquaredDisplacementValues",
             "description": "Section containing information regarding the values of a mean squared displacements (msds).",
             "base_sections": [
-              "/packages/38/section_definitions/16"
+              "/packages/36/section_definitions/16"
             ],
             "quantities": [
               {
@@ -64243,7 +63140,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "diffusion_constant",
-                "sub_section": "/packages/38/section_definitions/15",
+                "sub_section": "/packages/36/section_definitions/15",
                 "repeats": false
               }
             ]
@@ -64255,7 +63152,7 @@ window.nomadArtifacts = {
             "name": "CorrelationFunction",
             "description": "Generic section containing information about a calculation of any time correlation function from a trajectory.",
             "base_sections": [
-              "/packages/38/section_definitions/6"
+              "/packages/36/section_definitions/6"
             ],
             "quantities": [
               {
@@ -64285,7 +63182,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "correlation_function_values",
-                "sub_section": "/packages/38/section_definitions/16",
+                "sub_section": "/packages/36/section_definitions/16",
                 "repeats": true
               }
             ]
@@ -64297,7 +63194,7 @@ window.nomadArtifacts = {
             "name": "MeanSquaredDisplacement",
             "description": "Section containing information about a calculation of any mean squared displacements (msds).",
             "base_sections": [
-              "/packages/38/section_definitions/18"
+              "/packages/36/section_definitions/18"
             ],
             "sub_sections": [
               {
@@ -64305,7 +63202,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "mean_squared_displacement_values",
-                "sub_section": "/packages/38/section_definitions/17",
+                "sub_section": "/packages/36/section_definitions/17",
                 "repeats": true
               }
             ]
@@ -64316,7 +63213,7 @@ window.nomadArtifacts = {
             "m_parent_sub_section": "section_definitions",
             "name": "MolecularDynamicsResults",
             "base_sections": [
-              "/packages/43/section_definitions/2"
+              "/packages/41/section_definitions/2"
             ],
             "quantities": [
               {
@@ -64364,7 +63261,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "radial_distribution_functions",
-                "sub_section": "/packages/38/section_definitions/11",
+                "sub_section": "/packages/36/section_definitions/11",
                 "repeats": true
               },
               {
@@ -64372,7 +63269,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 1,
                 "m_parent_sub_section": "sub_sections",
                 "name": "ensemble_properties",
-                "sub_section": "/packages/38/section_definitions/10",
+                "sub_section": "/packages/36/section_definitions/10",
                 "repeats": true
               },
               {
@@ -64380,7 +63277,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 2,
                 "m_parent_sub_section": "sub_sections",
                 "name": "correlation_functions",
-                "sub_section": "/packages/38/section_definitions/18",
+                "sub_section": "/packages/36/section_definitions/18",
                 "repeats": true
               },
               {
@@ -64388,7 +63285,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 3,
                 "m_parent_sub_section": "sub_sections",
                 "name": "radius_of_gyration",
-                "sub_section": "/packages/38/section_definitions/13",
+                "sub_section": "/packages/36/section_definitions/13",
                 "repeats": true
               },
               {
@@ -64396,7 +63293,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 4,
                 "m_parent_sub_section": "sub_sections",
                 "name": "mean_squared_displacements",
-                "sub_section": "/packages/38/section_definitions/19",
+                "sub_section": "/packages/36/section_definitions/19",
                 "repeats": true
               },
               {
@@ -64404,7 +63301,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 5,
                 "m_parent_sub_section": "sub_sections",
                 "name": "free_energy_calculations",
-                "sub_section": "/packages/38/section_definitions/14",
+                "sub_section": "/packages/36/section_definitions/14",
                 "repeats": true
               }
             ]
@@ -64423,7 +63320,360 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/38/section_definitions/5"
+                "sub_section": "/packages/36/section_definitions/5"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "results",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/36/section_definitions/20"
+              }
+            ]
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 37,
+        "m_parent_sub_section": "packages",
+        "name": "simulationworkflowschema.phonon",
+        "section_definitions": [
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 0,
+            "m_parent_sub_section": "section_definitions",
+            "name": "PhononMethod",
+            "base_sections": [
+              "/packages/12/section_definitions/0"
+            ],
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "force_calculator",
+                "description": "Name of the program used to calculate the forces.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "str"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "mesh_density",
+                "description": "Density of the k-mesh for sampling.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [],
+                "unit": "1 / meter ** 3"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "random_displacements",
+                "description": "Identifies if displacements are made randomly.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "bool"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "with_non_analytic_correction",
+                "description": "Identifies if non-analytical term corrections are applied to dynamical matrix.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "bool"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 4,
+                "m_parent_sub_section": "quantities",
+                "name": "with_grueneisen_parameters",
+                "description": "Identifies if Grueneisen parameters are calculated.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "bool"
+                },
+                "shape": []
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 1,
+            "m_parent_sub_section": "section_definitions",
+            "name": "PhononResults",
+            "base_sections": [
+              "/packages/41/section_definitions/2"
+            ],
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "n_imaginary_frequencies",
+                "description": "Number of modes with imaginary frequencies.",
+                "type": {
+                  "type_kind": "python",
+                  "type_data": "int"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "n_bands",
+                "description": "Number of phonon bands.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "int32"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 2,
+                "m_parent_sub_section": "quantities",
+                "name": "n_qpoints",
+                "description": "Number of q points for which phonon properties are evaluated.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "int32"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 3,
+                "m_parent_sub_section": "quantities",
+                "name": "qpoints",
+                "description": "Value of the qpoints.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_qpoints",
+                  3
+                ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 4,
+                "m_parent_sub_section": "quantities",
+                "name": "group_velocity",
+                "description": "Calculated value of the group velocity at each qpoint.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_qpoints",
+                  "n_bands",
+                  3
+                ],
+                "unit": "meter / second"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 5,
+                "m_parent_sub_section": "quantities",
+                "name": "n_displacements",
+                "description": "Number of independent displacements.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "int32"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 6,
+                "m_parent_sub_section": "quantities",
+                "name": "n_atoms",
+                "description": "Number of atoms in the simulation cell.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "int32"
+                },
+                "shape": []
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 7,
+                "m_parent_sub_section": "quantities",
+                "name": "displacements",
+                "description": "Value of the displacements applied to each atom in the simulation cell.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "float64"
+                },
+                "shape": [
+                  "n_displacements",
+                  "n_atoms",
+                  3
+                ],
+                "unit": "meter"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 8,
+                "m_parent_sub_section": "quantities",
+                "name": "dos",
+                "description": "Reference to the electronic density of states data.",
+                "type": {
+                  "type_kind": "reference",
+                  "type_data": "/packages/10/section_definitions/17"
+                },
+                "shape": [
+                  "n_data"
+                ]
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 9,
+                "m_parent_sub_section": "quantities",
+                "name": "band_structure",
+                "description": "Reference to the electronic band structure data.",
+                "type": {
+                  "type_kind": "reference",
+                  "type_data": "/packages/10/section_definitions/14"
+                },
+                "shape": [
+                  "n_data"
+                ]
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 2,
+            "m_parent_sub_section": "section_definitions",
+            "name": "Phonon",
+            "base_sections": [
+              "/packages/12/section_definitions/3"
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "method",
+                "sub_section": "/packages/37/section_definitions/0"
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "sub_sections",
+                "name": "results",
+                "categories": [
+                  "/packages/25/category_definitions/0"
+                ],
+                "sub_section": "/packages/37/section_definitions/1"
+              }
+            ]
+          }
+        ]
+      },
+      {
+        "m_def": "nomad.metainfo.metainfo.Package",
+        "m_parent_index": 38,
+        "m_parent_sub_section": "packages",
+        "name": "simulationworkflowschema.photon_polarization",
+        "section_definitions": [
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 0,
+            "m_parent_sub_section": "section_definitions",
+            "name": "PhotonPolarizationResults",
+            "description": "Groups all polarization outputs: spectrum.",
+            "base_sections": [
+              "/packages/12/section_definitions/1"
+            ],
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "n_polarizations",
+                "description": "Number of polarizations for the phonons used for the calculations.",
+                "type": {
+                  "type_kind": "numpy",
+                  "type_data": "int32"
+                }
+              },
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 1,
+                "m_parent_sub_section": "quantities",
+                "name": "spectrum_polarization",
+                "description": "Spectrum for a given polarization of the photon.",
+                "type": {
+                  "type_kind": "reference",
+                  "type_data": "/packages/10/section_definitions/28"
+                },
+                "shape": [
+                  "n_polarizations"
+                ]
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 1,
+            "m_parent_sub_section": "section_definitions",
+            "name": "PhotonPolarizationMethod",
+            "description": "Defines the full macroscopic dielectric tensor methodology: BSE method reference.",
+            "base_sections": [
+              "/packages/12/section_definitions/0"
+            ],
+            "quantities": [
+              {
+                "m_def": "nomad.metainfo.metainfo.Quantity",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "quantities",
+                "name": "bse_method_ref",
+                "description": "BSE methodology reference.",
+                "type": {
+                  "type_kind": "reference",
+                  "type_data": "/packages/8/section_definitions/37"
+                }
+              }
+            ]
+          },
+          {
+            "m_def": "nomad.metainfo.metainfo.Section",
+            "m_parent_index": 2,
+            "m_parent_sub_section": "section_definitions",
+            "name": "PhotonPolarization",
+            "description": "The PhotonPolarization workflow is generated in an extra EntryArchive FOR all polarization EntryArchives present in the upload. It groups them for a set of given method parameters.\n\nThis entry is also recognized as the full macroscopic dielectric tensor entry (e.g. calculated\nvia BSE).",
+            "base_sections": [
+              "/packages/12/section_definitions/3"
+            ],
+            "sub_sections": [
+              {
+                "m_def": "nomad.metainfo.metainfo.SubSection",
+                "m_parent_index": 0,
+                "m_parent_sub_section": "sub_sections",
+                "name": "method",
+                "sub_section": "/packages/38/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -64431,9 +63681,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/38/section_definitions/20"
+                "sub_section": "/packages/38/section_definitions/0"
               }
             ]
           }
@@ -64443,359 +63693,6 @@ window.nomadArtifacts = {
         "m_def": "nomad.metainfo.metainfo.Package",
         "m_parent_index": 39,
         "m_parent_sub_section": "packages",
-        "name": "simulationworkflowschema.phonon",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "name": "PhononMethod",
-            "base_sections": [
-              "/packages/12/section_definitions/0"
-            ],
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "force_calculator",
-                "description": "Name of the program used to calculate the forces.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "str"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "mesh_density",
-                "description": "Density of the k-mesh for sampling.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [],
-                "unit": "1 / meter ** 3"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "random_displacements",
-                "description": "Identifies if displacements are made randomly.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "with_non_analytic_correction",
-                "description": "Identifies if non-analytical term corrections are applied to dynamical matrix.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "with_grueneisen_parameters",
-                "description": "Identifies if Grueneisen parameters are calculated.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "bool"
-                },
-                "shape": []
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "section_definitions",
-            "name": "PhononResults",
-            "base_sections": [
-              "/packages/43/section_definitions/2"
-            ],
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "n_imaginary_frequencies",
-                "description": "Number of modes with imaginary frequencies.",
-                "type": {
-                  "type_kind": "python",
-                  "type_data": "int"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "n_bands",
-                "description": "Number of phonon bands.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int32"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 2,
-                "m_parent_sub_section": "quantities",
-                "name": "n_qpoints",
-                "description": "Number of q points for which phonon properties are evaluated.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int32"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 3,
-                "m_parent_sub_section": "quantities",
-                "name": "qpoints",
-                "description": "Value of the qpoints.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [
-                  "n_qpoints",
-                  3
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 4,
-                "m_parent_sub_section": "quantities",
-                "name": "group_velocity",
-                "description": "Calculated value of the group velocity at each qpoint.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [
-                  "n_qpoints",
-                  "n_bands",
-                  3
-                ],
-                "unit": "meter / second"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 5,
-                "m_parent_sub_section": "quantities",
-                "name": "n_displacements",
-                "description": "Number of independent displacements.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int32"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 6,
-                "m_parent_sub_section": "quantities",
-                "name": "n_atoms",
-                "description": "Number of atoms in the simulation cell.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int32"
-                },
-                "shape": []
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 7,
-                "m_parent_sub_section": "quantities",
-                "name": "displacements",
-                "description": "Value of the displacements applied to each atom in the simulation cell.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "float64"
-                },
-                "shape": [
-                  "n_displacements",
-                  "n_atoms",
-                  3
-                ],
-                "unit": "meter"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 8,
-                "m_parent_sub_section": "quantities",
-                "name": "dos",
-                "description": "Reference to the electronic density of states data.",
-                "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/10/section_definitions/17"
-                },
-                "shape": [
-                  "n_data"
-                ]
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 9,
-                "m_parent_sub_section": "quantities",
-                "name": "band_structure",
-                "description": "Reference to the electronic band structure data.",
-                "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/10/section_definitions/14"
-                },
-                "shape": [
-                  "n_data"
-                ]
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "name": "Phonon",
-            "base_sections": [
-              "/packages/12/section_definitions/3"
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "method",
-                "sub_section": "/packages/39/section_definitions/0"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "results",
-                "categories": [
-                  "/packages/27/category_definitions/0"
-                ],
-                "sub_section": "/packages/39/section_definitions/1"
-              }
-            ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 40,
-        "m_parent_sub_section": "packages",
-        "name": "simulationworkflowschema.photon_polarization",
-        "section_definitions": [
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 0,
-            "m_parent_sub_section": "section_definitions",
-            "name": "PhotonPolarizationResults",
-            "description": "Groups all polarization outputs: spectrum.",
-            "base_sections": [
-              "/packages/12/section_definitions/1"
-            ],
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "n_polarizations",
-                "description": "Number of polarizations for the phonons used for the calculations.",
-                "type": {
-                  "type_kind": "numpy",
-                  "type_data": "int32"
-                }
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "quantities",
-                "name": "spectrum_polarization",
-                "description": "Spectrum for a given polarization of the photon.",
-                "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/10/section_definitions/28"
-                },
-                "shape": [
-                  "n_polarizations"
-                ]
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 1,
-            "m_parent_sub_section": "section_definitions",
-            "name": "PhotonPolarizationMethod",
-            "description": "Defines the full macroscopic dielectric tensor methodology: BSE method reference.",
-            "base_sections": [
-              "/packages/12/section_definitions/0"
-            ],
-            "quantities": [
-              {
-                "m_def": "nomad.metainfo.metainfo.Quantity",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "quantities",
-                "name": "bse_method_ref",
-                "description": "BSE methodology reference.",
-                "type": {
-                  "type_kind": "reference",
-                  "type_data": "/packages/8/section_definitions/37"
-                }
-              }
-            ]
-          },
-          {
-            "m_def": "nomad.metainfo.metainfo.Section",
-            "m_parent_index": 2,
-            "m_parent_sub_section": "section_definitions",
-            "name": "PhotonPolarization",
-            "description": "The PhotonPolarization workflow is generated in an extra EntryArchive FOR all polarization EntryArchives present in the upload. It groups them for a set of given method parameters.\n\nThis entry is also recognized as the full macroscopic dielectric tensor entry (e.g. calculated\nvia BSE).",
-            "base_sections": [
-              "/packages/12/section_definitions/3"
-            ],
-            "sub_sections": [
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 0,
-                "m_parent_sub_section": "sub_sections",
-                "name": "method",
-                "sub_section": "/packages/40/section_definitions/1"
-              },
-              {
-                "m_def": "nomad.metainfo.metainfo.SubSection",
-                "m_parent_index": 1,
-                "m_parent_sub_section": "sub_sections",
-                "name": "results",
-                "categories": [
-                  "/packages/27/category_definitions/0"
-                ],
-                "sub_section": "/packages/40/section_definitions/0"
-              }
-            ]
-          }
-        ]
-      },
-      {
-        "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 41,
-        "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.single_point",
         "section_definitions": [
           {
@@ -64979,7 +63876,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/41/section_definitions/1"
+                "sub_section": "/packages/39/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -64987,9 +63884,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/41/section_definitions/0"
+                "sub_section": "/packages/39/section_definitions/0"
               }
             ]
           },
@@ -65006,7 +63903,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 42,
+        "m_parent_index": 40,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.tb",
         "section_definitions": [
@@ -65087,7 +63984,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/42/section_definitions/1"
+                "sub_section": "/packages/40/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -65095,9 +63992,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/42/section_definitions/0"
+                "sub_section": "/packages/40/section_definitions/0"
               }
             ]
           }
@@ -65105,7 +64002,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 43,
+        "m_parent_index": 41,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.thermodynamics",
         "section_definitions": [
@@ -65116,7 +64013,7 @@ window.nomadArtifacts = {
             "name": "Decomposition",
             "description": "Section containing information about the system to which an unstable compound will decompose to.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -65164,7 +64061,7 @@ window.nomadArtifacts = {
             "name": "Stability",
             "description": "Section containing information regarding the stability of the system.",
             "base_sections": [
-              "/packages/25/section_definitions/0"
+              "/packages/23/section_definitions/0"
             ],
             "quantities": [
               {
@@ -65238,7 +64135,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "decomposition",
-                "sub_section": "/packages/43/section_definitions/0",
+                "sub_section": "/packages/41/section_definitions/0",
                 "repeats": true
               }
             ]
@@ -65500,7 +64397,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "stability",
-                "sub_section": "/packages/43/section_definitions/1",
+                "sub_section": "/packages/41/section_definitions/1",
                 "repeats": false
               }
             ]
@@ -65528,7 +64425,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/43/section_definitions/3"
+                "sub_section": "/packages/41/section_definitions/3"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -65536,9 +64433,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/43/section_definitions/2"
+                "sub_section": "/packages/41/section_definitions/2"
               }
             ]
           }
@@ -65546,7 +64443,7 @@ window.nomadArtifacts = {
       },
       {
         "m_def": "nomad.metainfo.metainfo.Package",
-        "m_parent_index": 44,
+        "m_parent_index": 42,
         "m_parent_sub_section": "packages",
         "name": "simulationworkflowschema.xs",
         "section_definitions": [
@@ -65581,7 +64478,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 2,
                 "m_parent_sub_section": "sub_sections",
                 "name": "spectra",
-                "sub_section": "/packages/40/section_definitions/0",
+                "sub_section": "/packages/38/section_definitions/0",
                 "repeats": true
               }
             ]
@@ -65610,7 +64507,7 @@ window.nomadArtifacts = {
                 "m_parent_index": 0,
                 "m_parent_sub_section": "sub_sections",
                 "name": "method",
-                "sub_section": "/packages/44/section_definitions/1"
+                "sub_section": "/packages/42/section_definitions/1"
               },
               {
                 "m_def": "nomad.metainfo.metainfo.SubSection",
@@ -65618,9 +64515,9 @@ window.nomadArtifacts = {
                 "m_parent_sub_section": "sub_sections",
                 "name": "results",
                 "categories": [
-                  "/packages/27/category_definitions/0"
+                  "/packages/25/category_definitions/0"
                 ],
-                "sub_section": "/packages/44/section_definitions/0"
+                "sub_section": "/packages/42/section_definitions/0"
               }
             ]
           }
diff --git a/gui/tests/env.js b/gui/tests/env.js
index 3420ae8a91c2ccffa24aa1fd01de68013c8df4b0..a443f14c4c965613b42d57ab2faca9d1122f5415 100644
--- a/gui/tests/env.js
+++ b/gui/tests/env.js
@@ -7888,6 +7888,66 @@ window.nomadEnv = {
           "description": "Describes the basic schemas for AI Toolkit notebooks.",
           "plugin_package": "nomad_aitoolkit"
         },
+        "nomad_external_eln_integrations.example_uploads:elabftwexample": {
+          "id": "nomad_external_eln_integrations.example_uploads:elabftwexample",
+          "entry_point_type": "example_upload",
+          "description": "Thi example contains an ELabFTW Experiment exported into .ELN file format.",
+          "plugin_package": "nomad_external_eln_integrations",
+          "category": "Examples",
+          "title": "ELN File Format Example",
+          "path": "example_uploads/files"
+        },
+        "nomad_external_eln_integrations.parsers:chemotion_parser_entry_point": {
+          "id": "nomad_external_eln_integrations.parsers:chemotion_parser_entry_point",
+          "entry_point_type": "parser",
+          "name": "parsers/chemotion",
+          "description": "NOMAD parser for chemotion data.",
+          "plugin_package": "nomad_external_eln_integrations",
+          "level": 0,
+          "aliases": [
+            "parsers/chemotion"
+          ],
+          "mainfile_name_re": "^.*export.json$",
+          "mainfile_mime_re": "application/json|text/plain",
+          "mainfile_alternative": false,
+          "supported_compressions": []
+        },
+        "nomad_external_eln_integrations.parsers:elabftw_parser_entry_point": {
+          "id": "nomad_external_eln_integrations.parsers:elabftw_parser_entry_point",
+          "entry_point_type": "parser",
+          "name": "parsers/elabftw",
+          "description": "NOMAD parser for eln file formats.",
+          "plugin_package": "nomad_external_eln_integrations",
+          "level": 0,
+          "aliases": [
+            "parsers/elabftw"
+          ],
+          "mainfile_name_re": ".*ro-crate-metadata.json$",
+          "mainfile_mime_re": "text/plain|application/json|text/html",
+          "mainfile_alternative": false,
+          "supported_compressions": []
+        },
+        "nomad_external_eln_integrations.schema_packages.elabftw:elabftw_schema": {
+          "id": "nomad_external_eln_integrations.schema_packages.elabftw:elabftw_schema",
+          "entry_point_type": "schema_package",
+          "name": "elabftw",
+          "description": "NOMAD integration for mapping elabftw data to NOMAD schema",
+          "plugin_package": "nomad_external_eln_integrations"
+        },
+        "nomad_external_eln_integrations.schema_packages.labfolder:labfolder_schema": {
+          "id": "nomad_external_eln_integrations.schema_packages.labfolder:labfolder_schema",
+          "entry_point_type": "schema_package",
+          "name": "labfolder",
+          "description": "NOMAD integration for mapping Labfolder data to NOMAD schema",
+          "plugin_package": "nomad_external_eln_integrations"
+        },
+        "nomad_external_eln_integrations.schema_packages.openbis:openbis_schema": {
+          "id": "nomad_external_eln_integrations.schema_packages.openbis:openbis_schema",
+          "entry_point_type": "schema_package",
+          "name": "openbis",
+          "description": "NOMAD integration for mapping Openbis data to NOMAD schema",
+          "plugin_package": "nomad_external_eln_integrations"
+        },
         "nomad_porous_materials.apps:mofapp": {
           "id": "nomad_porous_materials.apps:mofapp",
           "entry_point_type": "app",
@@ -8801,17 +8861,6 @@ window.nomadEnv = {
           "description": "A NOMAD plugin for FAIR schemas for simulation data.",
           "plugin_package": "nomad_simulations"
         },
-        "parsers/chemotion/chemotion": {
-          "plugin_type": "parser",
-          "id": "parsers/chemotion/chemotion",
-          "name": "parsers/chemotion"
-        },
-        "parsers/elabftw/elabftw": {
-          "plugin_type": "parser",
-          "id": "parsers/elabftw/elabftw",
-          "name": "parsers/elabftw",
-          "plugin_source_code_url": "https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/tree/develop/nomad/parsing/elabftw"
-        },
         "perovskite_solar_cell_database.apps:solar_cells": {
           "id": "perovskite_solar_cell_database.apps:solar_cells",
           "entry_point_type": "app",
@@ -10650,6 +10699,22 @@ window.nomadEnv = {
         "repository": "https://github.com/FAIRmat-NFDI/nomad-aitoolkit",
         "version": "0.1.1"
       },
+      "nomad_external_eln_integrations": {
+        "description": "3rd Party Integration packages",
+        "documentation": null,
+        "entry_points": [
+          "nomad_external_eln_integrations.parsers:chemotion_parser_entry_point",
+          "nomad_external_eln_integrations.example_uploads:elabftwexample",
+          "nomad_external_eln_integrations.parsers:elabftw_parser_entry_point",
+          "nomad_external_eln_integrations.schema_packages.elabftw:elabftw_schema",
+          "nomad_external_eln_integrations.schema_packages.labfolder:labfolder_schema",
+          "nomad_external_eln_integrations.schema_packages.openbis:openbis_schema"
+        ],
+        "homepage": null,
+        "name": "nomad_external_eln_integrations",
+        "repository": "https://github.com/FAIRmat-NFDI/nomad-external-eln-integrations",
+        "version": "0.1.0"
+      },
       "nomad_porous_materials": {
         "description": "NOMAD plugin for porous materials",
         "documentation": null,
diff --git a/nomad/config/defaults.yaml b/nomad/config/defaults.yaml
index d248f503040770d34e0798f06c82a502c80017a5..fa0c84b5c33d72ea08a4ddc8442ba7d3a92d4b46 100644
--- a/nomad/config/defaults.yaml
+++ b/nomad/config/defaults.yaml
@@ -1402,11 +1402,3 @@ plugins:
         description: |
           This example shows users how to take data from a Python framework and map it out to a Nexus application definition for IV Temperature measurements, [NXiv_temp](https://fairmat-experimental.github.io/nexus-fairmat-proposal/1c3806dba40111f36a16d0205cc39a5b7d52ca2e/classes/contributed_definitions/NXiv_temp.html#nxiv-temp).
           We use the Nexus ELN features of Nomad to generate a Nexus file.
-      parsers/chemotion/chemotion:
-        plugin_type: parser
-        python_package: nomad.parsing.chemotion
-        parser_as_interface: true
-      parsers/elabftw/elabftw:
-        plugin_type: parser
-        python_package: nomad.parsing.elabftw
-        parser_as_interface: true
diff --git a/nomad/datamodel/__init__.py b/nomad/datamodel/__init__.py
index 82cee2010191af93b08b67f8b5e17ec4566cef99..608267f988083b856600add662f112aee321c63e 100644
--- a/nomad/datamodel/__init__.py
+++ b/nomad/datamodel/__init__.py
@@ -77,6 +77,11 @@ def all_metainfo_packages():
 
     import_all_parsers()
 
+    # We need to manually import this module to get some definitions that the
+    # tests need. TODO: Are these definitions used by anything else besides the
+    # tests?
+    import nomad.datamodel.metainfo.eln
+
     # Create the ES mapping to populate ES annotations with search keys.
     from nomad.search import entry_type
 
diff --git a/nomad/datamodel/metainfo/__init__.py b/nomad/datamodel/metainfo/__init__.py
index 9deb14a2a1916e60fb9f2303355fbfc403c67dc2..2b62b30405dfee1da50f17317898d656a4cd9060 100644
--- a/nomad/datamodel/metainfo/__init__.py
+++ b/nomad/datamodel/metainfo/__init__.py
@@ -26,8 +26,6 @@ from . import (
 )  # Should be imported first to register the annotations before they are used
 from .simulation import m_env
 from .downloads import m_package
-from .eln.labfolder import m_package
-from .eln.openbis import m_package
 from .plot import m_package
 
 
diff --git a/nomad/datamodel/metainfo/eln/labfolder.py b/nomad/datamodel/metainfo/eln/labfolder.py
deleted file mode 100644
index ef1378a0eb89794d6e060332a96b88e25390a5ad..0000000000000000000000000000000000000000
--- a/nomad/datamodel/metainfo/eln/labfolder.py
+++ /dev/null
@@ -1,471 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-import json
-import yaml
-import requests
-import re
-from urllib.parse import urlparse, parse_qs
-from lxml.html.clean import clean_html  # pylint: disable=no-name-in-module
-import numpy as np
-
-from nomad.metainfo import (
-    MSection,
-    Section,
-    Quantity,
-    SubSection,
-    Package,
-    Datetime,
-    MEnum,
-    JSON,
-    Reference,
-)
-from nomad.datamodel.data import EntryData, ElnIntegrationCategory
-from nomad.metainfo.metainfo import SectionProxy
-
-m_package = Package(name='labfolder')
-
-
-class LabfolderDataElementDataContent(MSection):
-    """The content of a labfolder data grid."""
-
-    title = Quantity(type=str, description='the title of the table')
-    type = Quantity(type=str, description='type')
-    value = Quantity(type=str, description='value')
-    unit = Quantity(type=str, description='unit')
-    physical_quantity_id = Quantity(type=str, description='physical_quantity_id')
-    description = Quantity(type=str, description='physical_quantity_id')
-    children = SubSection(
-        sub_section=SectionProxy('LabfolderDataElementGrid'), repeats=True
-    )
-
-
-class LabfolderDataElementGrid(LabfolderDataElementDataContent):
-    """A labfolder grid containing data elements."""
-
-    title = Quantity(type=str, description='the title of the table')
-    type = Quantity(type=str, description='the title of the table')
-    children = SubSection(sub_section=LabfolderDataElementDataContent, repeats=True)
-
-
-class LabfolderImportError(Exception):
-    pass
-
-
-class LabfolderElement(MSection):
-    m_def = Section(label_quantity='element_type')
-
-    id = Quantity(type=str, description='the stable pointer to the element')
-    entry_id = Quantity(
-        type=str, description='the id of the stable pointer to the entry'
-    )
-    version_id = Quantity(type=str, description='the unique id of the element')
-    version_date = Quantity(
-        type=Datetime,
-        description='the creation date of the entry element version (same with the creation date on the first version)',
-    )
-    creation_date = Quantity(
-        type=Datetime,
-        description='the creation date of the entry element (first version)',
-    )
-    owner_id = Quantity(type=str, description='the id of the original author')
-    element_type = Quantity(
-        type=MEnum('TEXT', 'DATA', 'FILE', 'TABLE', 'WELL_PLATE'),
-        description='Denotes that this is a file element. The value is always `FILE`',
-    )
-
-    def download_files(self, labfolder_api_method, archive, logger):
-        pass
-
-    def post_process(self, labfolder_api_method, archive, logger, res_data={}):
-        pass
-
-
-class LabfolderEntry(MSection):
-    m_def = Section(label_quantity='title')
-
-    id = Quantity(type=str, description='Labfolder entry id')
-    version_id = Quantity(type=str)
-    author_id = Quantity(type=str)
-    project_id = Quantity(type=str)
-    version_date = Quantity(type=Datetime)
-    creation_date = Quantity(type=Datetime)
-    custom_dates = Quantity(type=Datetime, shape=['*'])
-    tags = Quantity(type=str, shape=['*'])
-    title = Quantity(type=str, description='Labfolder entry title')
-    hidden = Quantity(type=bool)
-    editable = Quantity(type=bool)
-
-    elements = SubSection(sub_section=LabfolderElement, repeats=True)
-
-    def download_files(self, labfolder_api_method, archive, logger):
-        pass
-
-    def post_process(self, labfolder_api_method, archive, logger, res_data={}):
-        pass
-
-
-class LabfolderTextElement(LabfolderElement):
-    content = Quantity(
-        type=str,
-        description='The text based content of this element',
-        a_browser=dict(value_component='HtmlValue'),
-    )
-
-    def post_process(self, *args, **kwargs):
-        if self.content:
-            self.content = clean_html(self.content)
-
-
-class LabfolderFileElement(LabfolderElement):
-    file_name = Quantity(type=str, description='The name of the file')
-    file_size = Quantity(type=int, description='The size of the file in bytes')
-    content_type = Quantity(
-        type=str,
-        description='The type of the binary content which is sent on header parameter `Content-Type`',
-    )
-
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def download_files(self, labfolder_api_method, archive, logger):
-        response = labfolder_api_method(
-            requests.get, f'/elements/file/{self.id}/download'
-        )
-        try:
-            with archive.m_context.raw_file(self.file_name, 'wb') as f:
-                f.write(response.content)
-        except Exception as e:
-            logger.error(
-                'could not download file',
-                exc_info=e,
-                data=dict(file_name=self.file_name),
-            )
-
-        self.file = self.file_name
-
-    def post_process(self, labfolder_api_method, archive, logger, res_data={}):
-        self.download_files(labfolder_api_method, archive, logger)
-
-
-class LabfolderImageElement(LabfolderElement):
-    title = Quantity(type=str, description='the title of the image element')
-    file_size = Quantity(type=int, description='the size of the image file in bytes')
-    preview_height = Quantity(
-        type=int, description='height of the downscaled image version, in px'
-    )
-    preview_width = Quantity(
-        type=int, description='width of the downscaled image version, in px'
-    )
-    preview_zoom = Quantity(
-        type=float, description='image zoom in the ELN UI, in percentage'
-    )
-    original_file_content_type = Quantity(
-        type=str, description='the content type of the original uploaded image file'
-    )
-    annotation_layer_svg = Quantity(
-        type=str,
-        description='The vector graphic used for the image annotation layer, defined in SVG format',
-    )
-
-    original_image_file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-    preview_image_file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def download_files(self, labfolder_api_method, archive, logger):
-        def download(path, file_quantity):
-            response = labfolder_api_method(
-                requests.get, f'/elements/image/{self.id}/{path}'
-            )
-
-            content_disposition = response.headers.get('Content-Disposition', '')
-            match = re.match(r'^attachment; filename="(.+)"$', content_disposition)
-            if match:
-                file_name = match.group(1)
-            else:
-                file_name = self.id
-                logger.warn(
-                    'there is no filename for an image', data=dict(element_id=self.id)
-                )
-            try:
-                with archive.m_context.raw_file(file_name, 'wb') as f:
-                    f.write(response.content)
-            except Exception as e:
-                logger.error(
-                    'could not download file',
-                    exc_info=e,
-                    data=dict(file_name=self.file_name),
-                )
-
-            self.m_set(file_quantity, file_name)
-
-        download('original-data', LabfolderImageElement.original_image_file)
-        download('preview-data', LabfolderImageElement.preview_image_file)
-
-    def post_process(self, labfolder_api_method, archive, logger, res_data={}):
-        self.download_files(labfolder_api_method, archive, logger)
-
-
-class LabfolderTableElement(LabfolderElement):
-    title = Quantity(type=str, description='the title of the table')
-    content = Quantity(
-        type=JSON,
-        description='The JSON content of the table element',
-        a_browser=dict(value_component='JsonValue'),
-    )
-
-
-class LabfolderDataElement(LabfolderElement):
-    data_elements = SubSection(section=LabfolderDataElementGrid, repeats=True)
-    labfolder_data = Quantity(
-        type=JSON,
-        description='The JSON content of the table element',
-        a_browser=dict(value_component='JsonValue'),
-    )
-
-    nomad_data = SubSection(sub_section=LabfolderElement)
-
-    nomad_data_schema = Quantity(
-        type=Reference(Section), a_eln=dict(component='ReferenceEditQuantity')
-    )
-
-    def parse_data(self, data_from_response, data_converted):
-        for item in data_from_response:
-            children = item.get('children', None)
-            if children is not None:
-                item_dict_name = item.get('title', None)
-                data_converted[item_dict_name] = {}
-                self.parse_data(children, data_converted[item_dict_name])
-            else:
-                child_dict = {}
-                child_dict_name = item.get('title', None)
-                child_dict[child_dict_name] = {}
-                child_dict[child_dict_name].update({'value': item.get('value', None)})
-                child_dict[child_dict_name].update({'unit': item.get('unit', None)})
-                child_dict[child_dict_name].update(
-                    {'description': item.get('description', None)}
-                )
-                data_converted.update(child_dict)
-
-    def post_process(self, labfolder_api_method, archive, logger, res_data={}):
-        data_from_response = res_data.get('data_elements', None)
-        if data_from_response is not None:
-            data_converted = {}
-            self.parse_data(data_from_response, data_converted)
-            self.labfolder_data = data_converted
-        else:
-            logger.warning('the labfolder api returned no data')
-
-
-class LabfolderWellPlateElement(LabfolderElement):
-    title = Quantity(type=str, description='The title of the well plate template')
-    content = Quantity(
-        type=JSON,
-        description='The title of the well plate template',
-        a_browser=dict(value_component='JsonValue'),
-    )
-    meta_data = Quantity(
-        type=JSON,
-        description='JSON meta data for visualization processing, used to store information about layer colors and well identifiers',
-        a_browser=dict(value_component='JsonValue'),
-    )
-
-
-_element_type_path_mapping = {
-    'TEXT': 'text',
-    'FILE': 'file',
-    'IMAGE': 'image',
-    'DATA': 'data',
-    'TABLE': 'table',
-    'WELL_PLATE': 'well-plate',
-}
-
-_element_type_section_mapping = {
-    'TEXT': LabfolderTextElement,
-    'FILE': LabfolderFileElement,
-    'IMAGE': LabfolderImageElement,
-    'DATA': LabfolderDataElement,
-    'TABLE': LabfolderTableElement,
-    'WELL_PLATE': LabfolderWellPlateElement,
-}
-
-
-class LabfolderProject(EntryData):
-    m_def = Section(
-        label='Labfolder Project Import', categories=[ElnIntegrationCategory]
-    )
-
-    def __init__(self, *args, **kwargs):
-        super(LabfolderProject, self).__init__(*args, **kwargs)
-
-        self.__headers = None
-        self.logger = None
-
-    project_url = Quantity(type=str, a_eln=dict(component='StringEditQuantity'))
-    labfolder_email = Quantity(type=str, a_eln=dict(component='StringEditQuantity'))
-    password = Quantity(
-        type=str,
-        a_eln=dict(component='StringEditQuantity', props=dict(type='password')),
-    )
-    resync_labfolder_repository = Quantity(
-        type=bool, a_eln=dict(component='BoolEditQuantity')
-    )
-
-    entries = SubSection(sub_section=LabfolderEntry, repeats=True)
-
-    def _labfolder_api_method(
-        self, method, url, msg='cannot do labfolder api request', **kwargs
-    ):
-        response = method(
-            f'{self._api_base_url}{url}', headers=self._headers, timeout=10, **kwargs
-        )
-
-        if response.status_code >= 400:
-            self.logger.error(
-                msg, data=dict(status_code=response.status_code, text=response.text)
-            )
-            raise LabfolderImportError()
-
-        return {} if url.endswith('/logout') else response
-
-    @property
-    def _api_base_url(self):
-        match = re.match(r'^(.+)/eln/notebook.*$', self.project_url)
-        if not match:
-            self.logger.error(
-                'unexpected labfolder url format',
-                data=dict(project_url=self.project_url),
-            )
-            raise LabfolderImportError()
-
-        return f'{match.group(1)}/api/v2'
-
-    @property
-    def _headers(self):
-        if not self.__headers:
-            response = requests.post(
-                f'{self._api_base_url}/auth/login',
-                json=dict(user=self.labfolder_email, password=self.password),
-            )
-
-            if response.status_code != 200:
-                self._clear_user_data()
-                self.logger.error(
-                    'cannot login',
-                    data=dict(status_code=response.status_code, text=response.text),
-                )
-                raise LabfolderImportError()
-
-            self.__headers = dict(Authorization=f'Token {response.json()["token"]}')
-
-        return self.__headers
-
-    def _clear_user_data(self):
-        self.labfolder_email = None
-        self.password = None
-
-        archive = self.m_root()
-        with archive.m_context.raw_file(archive.metadata.mainfile, 'wt') as f:
-            if archive.metadata.mainfile.endswith('json'):
-                json.dump(dict(data=archive.data.m_to_dict()), f)
-            else:
-                yaml.dump(dict(data=archive.data.m_to_dict()), f)
-
-    def normalize(self, archive, logger):
-        super(LabfolderProject, self).normalize(archive, logger)
-        self.logger = logger
-        if not self.entries:
-            self.resync_labfolder_repository = True
-
-        if self.resync_labfolder_repository:
-            if not self.project_url or not self.labfolder_email or not self.password:
-                logger.error('missing information, cannot import project')
-                raise LabfolderImportError()
-
-            try:
-                project_ids = parse_qs(urlparse(self.project_url).fragment[1:])[
-                    'projectIds'
-                ]
-            except KeyError as e:
-                logger.error('cannot parse project ids from url', exc_info=e)
-                raise LabfolderImportError()
-
-            entries = self._labfolder_api_method(
-                requests.get, f'/entries?project_ids={",".join(project_ids)}'
-            ).json()
-
-            # remove potential old content
-            self.entries.clear()
-
-            for entry in entries:
-                elements = entry['elements']
-                del entry['elements']
-
-                nomad_entry = LabfolderEntry()
-                try:
-                    nomad_entry.m_update_from_dict(entry)
-                except Exception as e:
-                    logger.error(
-                        'cannot update archive with labfolder data', exc_info=e
-                    )
-                    raise LabfolderImportError()
-
-                for element in elements:
-                    element_type = element['type']
-
-                    if element_type not in _element_type_path_mapping:
-                        logger.warn(
-                            'unknown element type', data=dict(element_type=element_type)
-                        )
-                        continue
-
-                    data = self._labfolder_api_method(
-                        requests.get,
-                        f'/elements/{_element_type_path_mapping[element_type]}/{element["id"]}/version/{element["version_id"]}',
-                    ).json()
-                    nomad_element = _element_type_section_mapping[element_type]()
-
-                    nomad_element.m_update_from_dict(data)
-                    nomad_element.post_process(
-                        self._labfolder_api_method, archive, logger, res_data=data
-                    )
-                    nomad_entry.elements.append(nomad_element)
-                self.entries.append(nomad_entry)
-
-            # Resetting Token and Logging out: Invalidating all access tokens
-            self.resync_labfolder_repository = False
-            self._clear_user_data()
-            self._labfolder_api_method(requests.post, '/auth/logout')
-            logger.info('reached the end')
-
-        elif not self.resync_labfolder_repository and len(self.elements) > 0:
-            for element in self.elements:
-                if (
-                    isinstance(element, LabfolderDataElement)
-                    and element.labfolder_data
-                    and element.nomad_data_schema
-                ):
-                    try:
-                        element.nomad_data = element.nomad_data_schema.m_from_dict(
-                            element.labfolder_data
-                        )
-                    except Exception as e:
-                        logger.error(
-                            'could not apply schema to labfolder data element',
-                            exc_info=e,
-                        )
-
-
-m_package.init_metainfo()
diff --git a/nomad/datamodel/metainfo/eln/openbis.py b/nomad/datamodel/metainfo/eln/openbis.py
deleted file mode 100644
index 8f6380862478969eca16b7a838aec90fd83cdf01..0000000000000000000000000000000000000000
--- a/nomad/datamodel/metainfo/eln/openbis.py
+++ /dev/null
@@ -1,205 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-import os
-
-from nomad.metainfo import (
-    MSection,
-    Section,
-    Quantity,
-    SubSection,
-    Package,
-    Datetime,
-    MEnum,
-    JSON,
-    Reference,
-)
-from nomad.datamodel.data import EntryData, ElnIntegrationCategory
-
-m_package = Package(name='openbis')
-
-
-class OpenbisImportError(Exception):
-    pass
-
-
-class OpenbisBaseSection(MSection):
-    code = Quantity(type=str, description='Code for the current section.')
-    description = Quantity(type=str, description='Description of the current section.')
-    frozen = Quantity(type=bool, description='If current space is frozen.')
-    permId = Quantity(type=str, description='Permanent id of the current section.')
-    modificationDate = Quantity(type=Datetime)
-    registration_date = Quantity(type=Datetime)
-    custom_dates = Quantity(type=Datetime, shape=['*'])
-
-    def download_files(self, openbis_element, archive, logger):
-        pass
-
-    def post_process(self, openbis_element, archive, logger):
-        pass
-
-
-class OpenbisAttachment(MSection):
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-
-class OpenbisExperiment(OpenbisBaseSection):
-    attachments = SubSection(sub_section=OpenbisAttachment, repeats=True)
-
-    def download_files(self, experiment, archive, logger):
-        try:
-            datasets = experiment.get_datasets()
-            for ds in datasets:
-                filepath = os.path.join(
-                    archive.m_context.upload_files.external_os_path,
-                    'raw',
-                    experiment.identifier[1:].lower(),
-                )
-                ds.download(
-                    destination=filepath,
-                    create_default_folders=False,
-                    wait_until_finished=False,
-                )
-                new_attachment = OpenbisAttachment()
-                file_name = '/'.join(
-                    [experiment.identifier[1:].lower(), ds.file_list[0].split('/')[1]]
-                )
-                new_attachment.file = file_name
-                self.attachments.append(new_attachment)
-        except Exception as e:
-            logger.error(
-                f'Could not download the file {filepath}.',
-                exc_info=e,
-                data=dict(filepath=filepath),
-            )
-
-
-class OpenbisProject(OpenbisBaseSection):
-    m_def = Section(label_quantity='code')
-
-    identifier = Quantity(
-        type=str, description='Path of the current item in the Openbis file system.'
-    )
-
-    experiments = SubSection(sub_section=OpenbisExperiment, repeats=True)
-
-
-class OpenbisSpace(OpenbisBaseSection):
-    m_def = Section(
-        label_quantity='code', description='Name of the current Openbis Space.'
-    )
-    projects = SubSection(sub_section=OpenbisProject, repeats=True)
-
-
-class OpenbisEntry(EntryData):
-    m_def = Section(label='Openbis Project Import', categories=[ElnIntegrationCategory])
-
-    def __init__(self, *args, **kwargs):
-        super(OpenbisEntry, self).__init__(*args, **kwargs)
-        self.logger = None
-
-    project_url = Quantity(type=str, a_eln=dict(component='StringEditQuantity'))
-    username = Quantity(type=str, a_eln=dict(component='StringEditQuantity'))
-    password = Quantity(
-        type=str,
-        a_eln=dict(component='StringEditQuantity', props=dict(type='password')),
-    )
-
-    spaces = SubSection(sub_section=OpenbisSpace, repeats=True)
-
-    def _clear_login_info(self, archive):
-        self.username = None
-        self.password = None
-        archive.data.username = None
-        archive.data.password = None
-
-    def normalize(self, archive, logger):
-        super(OpenbisEntry, self).normalize(archive, logger)
-        self.logger = logger
-
-        if not self.project_url or not self.username or not self.password:
-            logger.warning(
-                'Please make sure all fields of `project_url`, `username` and `password` are filled.'
-            )
-        else:
-            # Initializing pybis object
-            try:
-                from nomad_openbis.openbis import OpenbisHandler
-
-                with OpenbisHandler(
-                    self.project_url, self.username, self.password, archive, logger
-                ) as handler:
-                    # remove potential old content
-                    self.spaces.clear()
-
-                    try:
-                        spaces = handler.openbis.get_spaces()
-                    except Exception:
-                        self._clear_login_info(archive)
-                        raise OpenbisImportError(
-                            'Failed to fetch spaces. The pybis package might have been changed.'
-                        )
-
-                    # parsing the content in the spaces
-                    for space in spaces:
-                        space_element = OpenbisSpace()
-                        space_element.m_update_from_dict(space.attrs.all())
-
-                        try:
-                            projects = space.get_projects()
-                        except Exception:
-                            self._clear_login_info(archive)
-                            raise OpenbisImportError(
-                                'Failed to fetch projects. The pybis package might have been changed.'
-                            )
-                        for project in projects:
-                            project_element = OpenbisProject()
-                            project_element.m_update_from_dict(project.attrs.all())
-                            space_element.projects.append(project_element)
-
-                            try:
-                                experiments = project.get_experiments()
-                            except Exception:
-                                self._clear_login_info(archive)
-                                raise OpenbisImportError(
-                                    'Failed to fetch experiments. The pybis package might have been changed.'
-                                )
-                            for experiment in experiments:
-                                experiment_element = OpenbisExperiment()
-                                experiment_element.m_update_from_dict(
-                                    experiment.attrs.all()
-                                )
-                                try:
-                                    experiment_element.download_files(
-                                        experiment, archive, logger
-                                    )
-                                except Exception as e:
-                                    logger.error(
-                                        'Failed to download attachments.', exec_info=e
-                                    )
-
-                                project_element.experiments.append(experiment_element)
-
-                        self.spaces.append(space_element)
-            except Exception as e:
-                raise OpenbisImportError(e)
-
-            self._clear_login_info(archive)
-            logger.info('Transferring openbis data is finished.')
-
-
-m_package.init_metainfo()
diff --git a/nomad/parsing/chemotion/__init__.py b/nomad/parsing/chemotion/__init__.py
deleted file mode 100644
index ada44668f29e0e672654a03e31cec711732c08d4..0000000000000000000000000000000000000000
--- a/nomad/parsing/chemotion/__init__.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from .chemotion import ChemotionParser
diff --git a/nomad/parsing/chemotion/chemotion.py b/nomad/parsing/chemotion/chemotion.py
deleted file mode 100644
index efdbdba97e0656b54c78f4d4c93903b58b360a22..0000000000000000000000000000000000000000
--- a/nomad/parsing/chemotion/chemotion.py
+++ /dev/null
@@ -1,481 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-import os
-from typing import Union, Iterable
-import json
-
-import numpy as np
-from nomad.datamodel import EntryArchive, EntryData
-from nomad.datamodel.data import ElnIntegrationCategory
-from nomad.metainfo import (
-    Package,
-    Quantity,
-    JSON,
-    MSection,
-    Datetime,
-    Section,
-    SubSection,
-)
-from nomad import utils
-from nomad.metainfo.data_type import m_float16
-from nomad.parsing.parser import MatchingParser
-
-m_package = Package(name='chemotion')
-
-
-class ChemotionGeneralMetainfo(MSection):
-    user_id = Quantity(type=str)
-    created_at = Quantity(type=Datetime)
-    updated_at = Quantity(type=Datetime)
-    deleted_at = Quantity(type=Datetime)
-    molecule_id = Quantity(type=str)
-    sample_id = Quantity(type=str)
-    collection_id = Quantity(type=str)
-
-
-class ChemotionReactionSample(ChemotionGeneralMetainfo):
-    reaction_id = Quantity(type=str)
-    reference = Quantity(type=bool)
-    position = Quantity(type=int)
-    waste = Quantity(type=bool)
-    coefficient = Quantity(type=m_float16().no_type_check())
-
-
-class ChemotionCollection(ChemotionGeneralMetainfo):
-    ancestry = Quantity(type=str)
-    label = Quantity(type=str)
-    shared_by_id = Quantity(type=str)
-    is_shared = Quantity(type=bool)
-    permission_level = Quantity(type=int)
-    sample_detail_level = Quantity(type=int)
-    reaction_detail_level = Quantity(type=int)
-    wellplate_detail_level = Quantity(type=int)
-    position = Quantity(type=int)
-    screen_detail_level = Quantity(type=int)
-    is_locked = Quantity(type=bool)
-    is_synchronized = Quantity(type=bool)
-    researchplan_detail_level = Quantity(type=int)
-
-
-class ChemotionSample(ChemotionGeneralMetainfo):
-    name = Quantity(type=str)
-    target_amount_value = Quantity(type=m_float16().no_type_check())
-    target_amount_unit = Quantity(type=str)
-    description = Quantity(type=str)
-    molfile = Quantity(type=str)
-    purity = Quantity(type=str)
-    solvent = Quantity(type=str)
-    impurities = Quantity(type=str)
-    location = Quantity(type=str)
-    is_top_secret = Quantity(type=bool)
-    ancestry = Quantity(type=str)
-    external_label = Quantity(type=str)
-    created_by = Quantity(type=str)
-    short_label = Quantity(type=str)
-    real_amount_value = Quantity(type=str)
-    real_amount_unit = Quantity(type=str)
-    imported_readout = Quantity(type=str)
-    deleted_at = Quantity(type=str)
-    sample_svg_file = Quantity(type=str)
-    identifier = Quantity(type=str)
-    density = Quantity(type=m_float16().no_type_check())
-    melting_point = Quantity(type=m_float16().no_type_check())
-    boiling_point = Quantity(type=m_float16().no_type_check())
-    fingerprint_id = Quantity(type=str)
-    xref = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    molarity_value = Quantity(type=m_float16().no_type_check())
-    molarity_unit = Quantity(type=str)
-    molecule_name_id = Quantity(type=str)
-    molfile_version = Quantity(type=str)
-    stereo = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def post_process(self, **kwargs):
-        full_path = os.path.join('images', 'samples', self.sample_svg_file)
-        self.file = full_path
-
-
-class ChemotionCollectionsSample(ChemotionGeneralMetainfo):
-    collection_id = Quantity(type=str)
-
-
-class ChemotionFingerprint(ChemotionGeneralMetainfo):
-    fp0 = Quantity(type=str)
-    fp1 = Quantity(type=str)
-    fp2 = Quantity(type=str)
-    fp3 = Quantity(type=str)
-    fp4 = Quantity(type=str)
-    fp5 = Quantity(type=str)
-    fp6 = Quantity(type=str)
-    fp7 = Quantity(type=str)
-    fp8 = Quantity(type=str)
-    fp9 = Quantity(type=str)
-    fp10 = Quantity(type=str)
-    fp11 = Quantity(type=str)
-    fp12 = Quantity(type=str)
-    fp13 = Quantity(type=str)
-    fp14 = Quantity(type=str)
-    fp15 = Quantity(type=str)
-    num_set_bits = Quantity(type=int)
-
-
-class ChemotionMolecule(ChemotionGeneralMetainfo):
-    inchikey = Quantity(type=str)
-    inchistring = Quantity(type=str)
-    density = Quantity(type=m_float16().no_type_check())
-    molecular_weight = Quantity(type=m_float16().no_type_check())
-    molfile = Quantity(type=str)
-    melting_point = Quantity(type=str)
-    boiling_point = Quantity(type=str)
-    sum_formular = Quantity(type=str)
-    names = Quantity(type=str, shape=['*'])
-    iupac_name = Quantity(type=str)
-    molecule_svg_file = Quantity(type=str)
-    is_partial = Quantity(type=bool)
-    exact_molecular_weight = Quantity(type=m_float16().no_type_check())
-    cano_smiles = Quantity(type=str)
-    cas = Quantity(type=str, shape=['*'])
-    molfile_version = Quantity(type=str)
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def post_process(self, **kwargs):
-        full_path = os.path.join('images', 'molecules', self.molecule_svg_file)
-        self.file = full_path
-
-
-class ChemotionMoleculeName(ChemotionGeneralMetainfo):
-    description = Quantity(type=str)
-    name = Quantity(type=str)
-
-
-class ChemotionResidue(ChemotionGeneralMetainfo):
-    residue_type = Quantity(type=str)
-    custom_info = Quantity(type=str)
-
-
-class ChemotionReaction(ChemotionGeneralMetainfo):
-    name = Quantity(type=str)
-    description = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    timestamp_start = Quantity(type=str)
-    timestamp_stop = Quantity(type=str)
-    observation = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    purification = Quantity(type=JSON)
-    dangerous_products = Quantity(type=JSON)
-    tlc_solvents = Quantity(type=str)
-    tlc_description = Quantity(type=str)
-    rf_value = Quantity(type=str)
-    temperature = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    status = Quantity(type=str)
-    reaction_svg_file = Quantity(type=str)
-    solvent = Quantity(type=str)
-    deleted_at = Quantity(type=str)
-    short_label = Quantity(type=str)
-    created_by = Quantity(type=str)
-    role = Quantity(type=str)
-    origin = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    rinchi_string = Quantity(type=str)
-    rinchi_long_key = Quantity(type=str)
-    rinchi_short_key = Quantity(type=str)
-    rinchi_web_key = Quantity(type=str)
-    duration = Quantity(type=str)
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def post_process(self, **kwargs):
-        full_path = os.path.join('images', 'reactions', self.reaction_svg_file)
-        self.file = full_path
-
-
-class ChemotionCollectionsReaction(ChemotionGeneralMetainfo):
-    reaction_id = Quantity(type=str)
-
-
-class ChemotionReactionsStartingMaterialSample(ChemotionReactionSample):
-    pass
-
-
-class ChemotionReactionsSolventSample(ChemotionReactionSample):
-    pass
-
-
-class ChemotionReactionsPurificationSolventSample(ChemotionReactionSample):
-    pass
-
-
-class ChemotionReactionsReactantSample(ChemotionReactionSample):
-    pass
-
-
-class ChemotionReactionsProductSample(ChemotionReactionSample):
-    pass
-
-
-class ChemotionWellplate(ChemotionGeneralMetainfo):
-    name = Quantity(type=str)
-    size = Quantity(type=int)
-    description = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-
-
-class ChemotionCollectionsWellplate(ChemotionGeneralMetainfo):
-    wellplate_id = Quantity(type=str)
-
-
-class ChemotionWell(ChemotionGeneralMetainfo):
-    wellplate_id = Quantity(type=str)
-    position_x = Quantity(type=int)
-    position_y = Quantity(type=int)
-    readout = Quantity(type=Datetime)
-    additive = Quantity(type=Datetime)
-
-
-class ChemotionScreen(ChemotionGeneralMetainfo):
-    description = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    name = Quantity(type=str)
-    result = Quantity(type=str)
-    collaborator = Quantity(type=str)
-    conditions = Quantity(type=str)
-    requirements = Quantity(type=str)
-
-
-class ChemotionCollectionsScreen(ChemotionGeneralMetainfo):
-    screen_id = Quantity(type=str)
-
-
-class ChemotionScreensWellplate(ChemotionGeneralMetainfo):
-    screen_id = Quantity(type=str)
-    wellplate_id = Quantity(type=str)
-
-
-class ChemotionResearchPlan(ChemotionGeneralMetainfo):
-    name = Quantity(type=str)
-    body = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    sdf_file = Quantity(type=str)
-    svg_file = Quantity(type=str)
-    created_by = Quantity(type=str)
-
-    def post_process(self):
-        pass
-
-
-class ChemotionCollectionsResearchPlan(ChemotionGeneralMetainfo):
-    research_plan_id = Quantity(type=str)
-
-
-class ChemotionContainer(MSection):
-    ancestry = Quantity(type=str)
-    containable_id = Quantity(type=str)
-    containable_type = Quantity(type=str)
-    name = Quantity(type=str)
-    container_type = Quantity(type=str)
-    description = Quantity(type=str)
-    extended_metadata = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    created_at = Quantity(type=Datetime)
-    updated_at = Quantity(type=Datetime)
-    parent_id = Quantity(type=str)
-
-
-class ChemotionAttachment(ChemotionGeneralMetainfo):
-    attachable_id = Quantity(type=str)
-    filename = Quantity(type=str)
-    identifier = Quantity(type=str)
-    checksum = Quantity(type=str)
-    storage = Quantity(type=str)
-    created_by = Quantity(type=str)
-    created_for = Quantity(type=str)
-    version = Quantity(type=int)
-    content_type = Quantity(type=str)
-    bucket = Quantity(type=str)
-    key = Quantity(type=str)
-    thumb = Quantity(type=bool)
-    folder = Quantity(type=bool)
-    attachable_type = Quantity(type=str)
-    aasm_state = Quantity(type=str)
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def post_process(self, **kwargs):
-        full_path = os.path.join('attachments', self.key)
-        self.file = full_path
-
-
-class ChemotionLiteral(ChemotionGeneralMetainfo):
-    literature_id = Quantity(type=str)
-    element_id = Quantity(type=str)
-    element_type = Quantity(type=str)
-    category = Quantity(type=str)
-
-
-class ChemotionLiterature(ChemotionGeneralMetainfo):
-    title = Quantity(type=str)
-    url = Quantity(type=str)
-    refs = Quantity(type=JSON, a_browser=dict(value_component='JsonValue'))
-    doi = Quantity(type=str)
-
-
-class Chemotion(EntryData):
-    """
-    Each exported .eln formatted file contains ro-crate-metadata.json file which is parsed into this class.
-    Important Quantities are:
-        id: id of the file which holds metadata info
-        date_created: date of when the file is exported
-
-    title is used as an identifier for the GUI to differentiate between the parsed entries and the original file.
-    """
-
-    m_def = Section(
-        label='Chemotion Project Import', categories=[ElnIntegrationCategory]
-    )
-
-    name = Quantity(
-        type=str,
-        description='Name of the project',
-        a_eln=dict(component='StringEditQuantity'),
-    )
-    title = Quantity(
-        type=str,
-        description='Title of the entry',
-        a_eln=dict(component='StringEditQuantity'),
-    )
-
-    date_created = Quantity(
-        type=Datetime,
-        description='Creation date of the .eln',
-        a_eln=dict(component='DateTimeEditQuantity'),
-    )
-    author = Quantity(
-        type=str,
-        description="Full name of the experiment's author",
-        a_eln=dict(component='StringEditQuantity'),
-    )
-
-    Collection = SubSection(sub_section=ChemotionCollection, repeats=True)
-    Sample = SubSection(sub_section=ChemotionSample, repeats=True)
-    CollectionsSample = SubSection(sub_section=ChemotionCollectionsSample, repeats=True)
-    Fingerprint = SubSection(sub_section=ChemotionFingerprint, repeats=True)
-    Molecule = SubSection(sub_section=ChemotionMolecule, repeats=True)
-    MoleculeName = SubSection(sub_section=ChemotionMoleculeName, repeats=True)
-    Container = SubSection(sub_section=ChemotionContainer, repeats=True)
-    Attachment = SubSection(sub_section=ChemotionAttachment, repeats=True)
-    Reactions = SubSection(sub_section=ChemotionReaction, repeats=True)
-    CollectionsReaction = SubSection(
-        sub_section=ChemotionCollectionsReaction, repeats=True
-    )
-    ReactionsStartingMaterialSample = SubSection(
-        sub_section=ChemotionReactionsStartingMaterialSample, repeats=True
-    )
-    ReactionsSolventSample = SubSection(
-        sub_section=ChemotionReactionsSolventSample, repeats=True
-    )
-    ReactionsProductSample = SubSection(
-        sub_section=ChemotionReactionsProductSample, repeats=True
-    )
-    ResearchPlan = SubSection(sub_section=ChemotionResearchPlan, repeats=True)
-    CollectionsResearchPlan = SubSection(
-        sub_section=ChemotionCollectionsResearchPlan, repeats=True
-    )
-
-
-_element_type_section_mapping = {
-    'Collection': ChemotionCollection,
-    'Sample': ChemotionSample,
-    'CollectionsSample': ChemotionCollectionsSample,
-    'Fingerprint': ChemotionFingerprint,
-    'Molecule': ChemotionMolecule,
-    'MoleculeName': ChemotionMoleculeName,
-    'Container': ChemotionContainer,
-    'Attachment': ChemotionAttachment,
-    'Reaction': ChemotionReaction,
-    'CollectionsReaction': ChemotionCollectionsReaction,
-    'ReactionsStartingMaterialSample': ChemotionReactionsStartingMaterialSample,
-    'ReactionsSolventSample': ChemotionReactionsSolventSample,
-    'ReactionsProductSample': ChemotionReactionsProductSample,
-    'ResearchPlan': ChemotionResearchPlan,
-    'CollectionsResearchPlan': ChemotionCollectionsResearchPlan,
-}
-
-
-def _set_inf_to_nan_if_string(dct, key):
-    if key in dct and isinstance(dct[key], str):
-        dct[key] = np.NaN
-
-
-class ChemotionParser(MatchingParser):
-    creates_children = True
-
-    def __init__(self) -> None:
-        super().__init__(
-            name='parsers/chemotion',
-            code_name='Chemotion',
-            domain=None,
-            mainfile_mime_re=r'application/json|text/plain',
-            mainfile_name_re=r'^.*export.json$',
-        )
-
-    def is_mainfile(
-        self,
-        filename: str,
-        mime: str,
-        buffer: bytes,
-        decoded_buffer: str,
-        compression: str = None,
-    ) -> Union[bool, Iterable[str]]:
-        is_export_json = super().is_mainfile(
-            filename, mime, buffer, decoded_buffer, compression
-        )
-        if not is_export_json:
-            return False
-
-        return [str(0)]
-
-    def parse(
-        self, mainfile: str, archive: EntryArchive, logger=None, child_archives=None
-    ):
-        if logger is None:
-            logger = utils.get_logger(__name__)
-
-        chemotion = Chemotion()
-
-        with open(mainfile, 'rt') as f:
-            data = json.load(f)
-
-        for item_name, item_content in data.items():
-            for sub_item in item_content.values():
-                if isinstance(sub_item, dict):
-                    sub_item = {k: v for k, v in sub_item.items() if v is not None}
-                try:
-                    chemotion_subsection = _element_type_section_mapping[item_name]()
-                    _set_inf_to_nan_if_string(sub_item, 'melting_point')
-                    _set_inf_to_nan_if_string(sub_item, 'boiling_point')
-
-                    chemotion_subsection.m_update_from_dict(sub_item)
-
-                    if item_name in ['Sample', 'Molecule', 'Reaction', 'ResearchPlan']:
-                        chemotion_subsection.post_process()
-                    item_name = 'Reactions' if item_name == 'Reaction' else item_name
-                    sub_section_def = getattr(chemotion.m_def.section_cls, item_name)
-                    chemotion.m_add_sub_section(sub_section_def, chemotion_subsection)
-                except Exception as e:
-                    logger.error(
-                        'No dot (.) is allowed in the column name.',
-                        details=dict(column=item_name),
-                        exc_info=e,
-                    )
-        for child_archive in child_archives.values():
-            child_archive.data = chemotion
-        logger.info('eln parsed successfully')
-
-
-m_package.__init_metainfo__()
diff --git a/nomad/parsing/chemotion/nomad_plugin.yaml b/nomad/parsing/chemotion/nomad_plugin.yaml
deleted file mode 100644
index 7091185371207d1ca4804aa4f47c273b235563c5..0000000000000000000000000000000000000000
--- a/nomad/parsing/chemotion/nomad_plugin.yaml
+++ /dev/null
@@ -1,21 +0,0 @@
-code_category: ELN
-code_homepage: https://chemotion.net/
-code_name: Chemotion
-metadata:
-  codeCategory: ELN
-  codeLabel: Chemotion
-  codeLabelStyle: 'capitals: C.'
-  codeName: Chemotion
-  codeUrl: https://chemotion.net/
-  parserDirName: nomad/parsing/chemotion
-  parserGitUrl: https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git
-  preabmle: ""
-  status: production
-  tableOfFiles: |
-    |Input Filename| Description|
-    |--- | --- |
-    |`*.export.json` | **Mainfile** as part of the .eln chemotion export |
-    |`*` | Files in .eln chemotion export that are references by the mainfile and description.txt |
-name: parsers/chemotion
-parser_class_name: nomad.parsing.chemotion.ChemotionParser
-python_package: nomad.parsing.chemotion
diff --git a/nomad/parsing/elabftw/__init__.py b/nomad/parsing/elabftw/__init__.py
deleted file mode 100644
index 1e9e4b35d973f110a4ae67594c4665b0b2ebbb1a..0000000000000000000000000000000000000000
--- a/nomad/parsing/elabftw/__init__.py
+++ /dev/null
@@ -1,19 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from .elabftw import ELabFTWParser
diff --git a/nomad/parsing/elabftw/elabftw.py b/nomad/parsing/elabftw/elabftw.py
deleted file mode 100644
index c9a9e5ce9e1f7c5e299d87174f0e9517086c33b5..0000000000000000000000000000000000000000
--- a/nomad/parsing/elabftw/elabftw.py
+++ /dev/null
@@ -1,653 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-import os
-from typing import Union, Iterable
-import json
-import re
-import copy
-
-from nomad.datamodel import EntryArchive, EntryData, Results
-from nomad.datamodel.data import ElnIntegrationCategory, ArchiveSection
-from nomad.datamodel.metainfo.annotations import ELNAnnotation
-from nomad.metainfo import (
-    Package,
-    Quantity,
-    JSON,
-    MEnum,
-    MSection,
-    Datetime,
-    SubSection,
-    Section,
-)
-from nomad import utils
-from nomad.metainfo.util import camel_case_to_snake_case
-from nomad.parsing.parser import MatchingParser
-
-m_package = Package(name='elabftw')
-
-
-def _remove_at_sign_from_keys(obj):
-    obj = copy.deepcopy(obj)
-
-    for k, v in list(obj.items()):
-        if k.startswith('@'):
-            obj[k.lstrip('@')] = v
-            del obj[k]
-            k = k.lstrip('@')
-        if isinstance(v, dict):
-            obj[k] = _remove_at_sign_from_keys(v)
-        if isinstance(v, list):
-            for i, item in enumerate(v):
-                if isinstance(item, dict):
-                    obj[k][i] = _remove_at_sign_from_keys(item)
-
-    return obj
-
-
-def _map_response_to_dict(data: list) -> dict:
-    mapped_dict: dict = {}
-    cleaned_data = _remove_at_sign_from_keys(data)
-    for item in cleaned_data['graph']:
-        id = item['id']
-        if id not in mapped_dict:
-            mapped_dict[id] = item
-        else:
-            num = int(id.split('__internal_')[1])
-            id_internal = f'{id}__internal_{num + 1}'
-            mapped_dict[id_internal] = item
-    return mapped_dict
-
-
-def _create_file_section(file, graph, parent_folder_raw_path, logger=None):
-    try:
-        section = _element_type_section_mapping[file['type']]()
-    except Exception:
-        logger.error(f"Could not find type fo the file {file['id']}")
-        raise ELabFTWParserError(f"Could not find type fo the file {file['id']}")
-    section.m_update_from_dict(graph[file['id']])
-    try:
-        file_name = file['id'].split('./')[1]
-        full_path = os.path.join(parent_folder_raw_path, file_name)
-        section.post_process(file_name=full_path)
-    except Exception:
-        logger.error(f"Could not set the file path for file {file['id']}")
-    return section
-
-
-class ELabFTWRef(MSection):
-    """Represents a referenced item in ELabFTW entry."""
-
-    row_refs = Quantity(
-        type=ArchiveSection,
-        a_eln=ELNAnnotation(
-            component='ReferenceEditQuantity',
-            label='ELabFTW Reference',
-        ),
-        description='References that connect to each ELabFTW ref. Each item is stored in it individual entry.',
-    )
-
-
-class ELabFTWParserError(Exception):
-    """eln parser related errors."""
-
-    pass
-
-
-class ELabFTWExperimentLink(MSection):
-    """
-    This class contains information from other experiments that are linked to this specific experiment.
-    the external link can be accessed using the query parameter #id:
-    https://demo.elabftw.net/experiments.php?mode=view&id={itemid}
-    """
-
-    itemid = Quantity(
-        type=str, description='id of the external experiment linked to this experiment'
-    )
-    title = Quantity(type=str, description='title of the external experiment')
-    elabid = Quantity(type=str, description='hashed id')
-    category = Quantity(
-        type=str, description='Category/status of the external experiment link'
-    )
-
-
-class ELabFTWItemLink(ELabFTWExperimentLink):
-    """
-    This class holds information of the items related to this specific experiment.
-    The external link can be accessed via setting the query parameter #related:
-    https://demo.elabftw.net/database.php?mode=show&related={itemid}
-    """
-
-    bookable = Quantity(type=bool)
-
-
-class ELabFTWSteps(MSection):
-    """
-    Steps recorded for the current experiment
-    """
-
-    id = Quantity(type=str, description='id of the current step')
-    item_id = Quantity(type=str, description='item_id of the current experiment')
-    body = Quantity(type=str, description='title of the step')
-    ordering = Quantity(
-        type=str, description='location of the current step in the overall order'
-    )
-    finished = Quantity(
-        type=bool, description='a boolean if the step is taken/finished'
-    )
-    finished_time = Quantity(
-        type=Datetime, description='time at which the step is finished'
-    )
-    deadline = Quantity(type=Datetime, description='deadline time')
-
-
-class ELabFTWExperimentData(MSection):
-    """
-    Detailed information of the given ELabFTW experiment, such as links to external resources and extra fields, are
-    stored here.
-    """
-
-    body = Quantity(
-        type=str,
-        description='an html-tagged string containing the information of this experiment',
-        a_browser=dict(render_value='HtmlValue'),
-    )
-    created_at = Quantity(
-        type=Datetime,
-        description='Date and time of when this experiment is created at.',
-    )
-    sharelink = Quantity(
-        type=str,
-        a_eln=dict(component='URLEditQuantity'),
-        description='URL link to this experiment in the ELabFTW repository',
-    )
-    extra_fields = Quantity(
-        type=JSON,
-        description='data in the extra_fields field',
-        a_browser=dict(value_component='JsonValue'),
-    )
-    firstname = Quantity(
-        type=str,
-        a_eln=dict(component='StringEditQuantity'),
-        description="Author's first name",
-    )
-    fullname = Quantity(
-        type=str,
-        a_eln=dict(component='StringEditQuantity'),
-        description="Author's full name",
-    )
-
-    items_links = SubSection(sub_section=ELabFTWItemLink, repeats=True)
-    experiments_links = SubSection(sub_section=ELabFTWExperimentLink, repeats=True)
-    steps = SubSection(sub_section=ELabFTWSteps, repeats=True)
-    references = SubSection(sub_section=ELabFTWRef, repeats=True)
-
-    def normalize(self, archive, logger) -> None:
-        exp_ids = [('experiments', exp.itemid) for exp in self.experiments_links]
-        res_ids = [('database', exp.itemid) for exp in self.items_links]
-
-        for item in exp_ids + res_ids:
-            from nomad.search import search, MetadataPagination
-
-            query = {'external_id': item[1]}
-            search_result = search(
-                owner='all',
-                query=query,
-                pagination=MetadataPagination(page_size=1),
-                user_id=archive.metadata.main_author.user_id,
-            )
-            if search_result.pagination.total > 0:
-                entry_id = search_result.data[0]['entry_id']
-                upload_id = search_result.data[0]['upload_id']
-                ref = ELabFTWRef()
-                ref.row_refs = f'../uploads/{upload_id}/archive/{entry_id}#data'
-                self.references.append(ref)
-                if search_result.pagination.total > 1:
-                    logger.warn(
-                        f'Found {search_result.pagination.total} entries with external id: '
-                        f'"{item[1]}". Will use the first one found.'
-                    )
-            else:
-                logger.warn(f'Found no entries with metadata.external_id: "{item[1]}".')
-
-
-class ELabFTWComment(MSection):
-    """
-    A section containing comments made on the experiment. It contains a user object that refers to the id of the
-    comment creator
-    """
-
-    date_created = Quantity(type=Datetime, description='Creation date of the comment')
-    text = Quantity(type=str, description="Comment's content")
-    author = Quantity(
-        type=JSON,
-        description='author information',
-        a_browser=dict(value_component='JsonValue'),
-    )
-
-
-class ELabFTWBaseSection(MSection):
-    """
-    General information on the exported files/experiment of the .eln file
-    """
-
-    m_def = Section(label_quantity='type')
-
-    id = Quantity(type=str, description='id of the current data-type')
-    type = Quantity(type=str, description='type of the data')
-
-    def post_process(self, **kwargs):
-        pass
-
-
-class ELabFTWFile(ELabFTWBaseSection):
-    """
-    Information of the exported files
-    """
-
-    description = Quantity(type=str, description='Description of the file')
-    name = Quantity(type=str, description='Name of the file')
-    content_size = Quantity(type=str, description='Size of the file')
-    content_type = Quantity(type=str, description='Type of this file')
-    file = Quantity(type=str, a_browser=dict(adaptor='RawFileAdaptor'))
-
-    def post_process(self, **kwargs):
-        file_name = kwargs.get('file_name', None)
-        self.file = file_name
-
-
-class ElabFTWDataset(ELabFTWBaseSection):
-    """
-    Information of the dataset type. The author information goes here.
-    """
-
-    # TODO: the author section here needs to be integrated into NOMAD user authentication (keycloak) system.
-    author = Quantity(
-        type=JSON,
-        description='author information',
-        a_browser=dict(value_component='JsonValue'),
-    )
-    name = Quantity(type=str, description='Name of the Dataset')
-    text = Quantity(type=str, description='Body content of the dataset')
-    url = Quantity(
-        type=str,
-        a_eln=dict(component='URLEditQuantity'),
-        description='Link to this dataset in ELabFTW repository',
-    )
-    date_created = Quantity(type=Datetime, description='Creation date')
-    date_modified = Quantity(type=Datetime, description='Last modification date')
-    keywords = Quantity(
-        type=str,
-        shape=['*'],
-        description='keywords associated with the current experiment',
-    )
-
-    comment = SubSection(sub_section=ELabFTWComment, repeats=True)
-
-
-class ELabFTW(EntryData):
-    """
-    Each exported .eln formatted file contains ro-crate-metadata.json file which is parsed into this class.
-    Important Quantities are:
-        id: id of the file which holds metadata info
-        date_created: date of when the file is exported
-
-    title is used as an identifier for the GUI to differentiate between the parsed entries and the original file.
-    """
-
-    m_def = Section(label='ELabFTW Project Import', categories=[ElnIntegrationCategory])
-
-    id = Quantity(
-        type=str,
-        description='id of the file containing the metadata information. It should always be ro-crate-metadata.json',
-    )
-    title = Quantity(type=str, description='Title of the entry')
-
-    date_created = Quantity(type=Datetime, description='Creation date of the .eln')
-    sd_publisher = Quantity(
-        type=JSON,
-        description='Publisher information',
-        a_browser=dict(value_component='JsonValue'),
-    )
-
-    author = Quantity(type=str, description="Full name of the experiment's author")
-    project_id = Quantity(type=str, description='Project ID')
-    status = Quantity(
-        type=MEnum(
-            'Not set',
-            'Running',
-            'Waiting',
-            'Success',
-            'Need to be redone',
-            'Fail',
-            'Maintenance mode',
-        ),
-        description='Status of the Experiment',
-    )
-    keywords = Quantity(
-        type=str, shape=['*'], description='Keywords associated with the Experiment'
-    )
-
-    experiment_data = SubSection(sub_section=ELabFTWExperimentData)
-    experiment_files = SubSection(sub_section=ELabFTWBaseSection, repeats=True)
-
-    def post_process(self, **kwargs):
-        full_name = kwargs.get('full_name')
-        self.author = full_name
-
-
-_element_type_section_mapping = {'File': ELabFTWFile, 'Dataset': ElabFTWDataset}
-
-
-class ELabFTWParser(MatchingParser):
-    creates_children = True
-
-    def __init__(self) -> None:
-        super().__init__(
-            name='parsers/elabftw_parser',
-            code_name='ElabFTW',
-            domain=None,
-            mainfile_mime_re=r'text/plain|application/json|text/html',
-            mainfile_name_re=r'.*ro-crate-metadata.json$',
-        )
-
-    def is_mainfile(
-        self,
-        filename: str,
-        mime: str,
-        buffer: bytes,
-        decoded_buffer: str,
-        compression: str = None,
-    ) -> Union[bool, Iterable[str]]:
-        is_ro_crate = super().is_mainfile(
-            filename, mime, buffer, decoded_buffer, compression
-        )
-        if not is_ro_crate:
-            return False
-        try:
-            with open(filename, 'rt') as f:
-                data = json.load(f)
-        except Exception:
-            return False
-
-        try:
-            if any(
-                item.get('@type') == 'SoftwareApplication' for item in data['@graph']
-            ):
-                root_experiment = next(
-                    (item for item in data['@graph'] if item.get('@id') == './')
-                )
-                no_of_experiments = len(root_experiment['hasPart'])
-            else:
-                no_of_experiments = len(data['@graph'][-2]['hasPart'])
-        except (KeyError, IndexError, TypeError):
-            return False
-
-        return [str(item) for item in range(0, no_of_experiments)]
-
-    def parse(
-        self, mainfile: str, archive: EntryArchive, logger=None, child_archives=None
-    ):
-        if logger is None:
-            logger = utils.get_logger(__name__)
-
-        title_pattern = re.compile(r'^\d{4}-\d{2}-\d{2} - ([a-zA-Z0-9\-]+) - .*$')
-
-        lab_ids: list[tuple[str, str]] = []
-        with open(mainfile, 'rt') as f:
-            data = json.load(f)
-
-        snake_case_data = camel_case_to_snake_case(data)
-        clean_data = _remove_at_sign_from_keys(snake_case_data)
-        graph = {item['id']: item for item in clean_data['graph']}
-        experiments = graph['./']
-
-        for index, experiment in enumerate(experiments['has_part']):
-            exp_id = experiment['id']
-            raw_experiment, exp_archive = graph[exp_id], child_archives[str(index)]
-
-            # hook for matching the older .eln files from Elabftw exported files
-            if not any(
-                item.get('type') == 'SoftwareApplication'
-                for item in clean_data['graph']
-            ):
-                elabftw_experiment = _parse_legacy(
-                    graph,
-                    raw_experiment,
-                    exp_archive,
-                    data,
-                    mainfile,
-                    exp_id,
-                    title_pattern,
-                    lab_ids,
-                    archive,
-                    logger,
-                )
-
-                if not archive.results:
-                    archive.results = Results()
-                    archive.results.eln = Results.eln.sub_section.section_cls()
-                    archive.results.eln.lab_ids = [str(lab_id[1]) for lab_id in lab_ids]
-                    archive.results.eln.tags = [lab_id[0] for lab_id in lab_ids]
-
-            else:
-                elabftw_experiment = _parse_latest(
-                    graph,
-                    raw_experiment,
-                    exp_archive,
-                    mainfile,
-                    exp_id,
-                    archive,
-                    logger,
-                )
-
-            exp_archive.data = elabftw_experiment
-
-        logger.info('eln parsed successfully')
-
-
-def _parse_legacy(
-    graph,
-    raw_experiment,
-    exp_archive,
-    data,
-    mainfile,
-    exp_id,
-    title_pattern,
-    lab_ids,
-    archive,
-    logger,
-) -> ELabFTW:
-    elabftw_experiment = ELabFTW()
-    try:
-        del graph['ro-crate-metadata.json']['type']
-    except Exception:
-        pass
-    elabftw_experiment.m_update_from_dict(graph['ro-crate-metadata.json'])
-    elabftw_entity_type = _set_experiment_metadata(
-        raw_experiment, exp_archive, elabftw_experiment, logger
-    )
-
-    try:
-        author_full_name = ' '.join(
-            [
-                data['graph'][-1]['given_name'],
-                data['graph'][-1]['family_name'],
-            ]
-        )
-        elabftw_experiment.post_process(full_name=author_full_name)
-    except Exception:
-        logger.error('Could not extract the author name')
-
-    mainfile_raw_path = os.path.dirname(mainfile)
-    parent_folder_raw_path = mainfile.split('/')[-2]
-
-    extracted_title = _set_child_entry_name(exp_id, exp_archive, archive, logger)
-
-    matched = title_pattern.findall(extracted_title)
-    if matched:
-        title = matched[0]
-    else:
-        title = extracted_title
-    elabftw_experiment.title = title
-
-    path_to_export_json = os.path.join(mainfile_raw_path, exp_id, 'export-elabftw.json')
-    try:
-        with open(path_to_export_json, 'rt') as f:
-            export_data = json.load(f)
-    except FileNotFoundError:
-        raise ELabFTWParserError(f"Couldn't find export-elabftw.json file.")
-
-    def clean_nones(value):
-        if isinstance(value, list):
-            return [
-                clean_nones(x) for x in value
-            ]  # ??? what to do if this list has None values
-        if isinstance(value, dict):
-            return {k: clean_nones(v) for k, v in value.items() if v is not None}
-
-        return value
-
-    experiment_data = ELabFTWExperimentData()
-    try:
-        experiment_data.m_update_from_dict(clean_nones(export_data[0]))
-    except (IndexError, KeyError, TypeError):
-        logger.warning(
-            f"Couldn't read and parse the data from export-elabftw.json file"
-        )
-    try:
-        experiment_data.extra_fields = export_data[0]['metadata']['extra_fields']
-    except Exception:
-        pass
-    elabftw_experiment.experiment_data = experiment_data
-
-    try:
-        exp_archive.metadata.comment = elabftw_entity_type
-
-        lab_ids.extend(
-            ('experiment_link', experiment_link['itemid'])
-            for experiment_link in export_data[0]['experiments_links']
-        )
-        lab_ids.extend(
-            ('item_link', experiment_link['itemid'])
-            for experiment_link in export_data[0]['items_links']
-        )
-    except Exception:
-        pass
-    for file_id in raw_experiment['has_part']:
-        file_section = _create_file_section(
-            graph[file_id['id']], graph, parent_folder_raw_path, logger
-        )
-        elabftw_experiment.experiment_files.append(file_section)
-
-    return elabftw_experiment
-
-
-def _set_child_entry_name(exp_id, child_archive, archive, logger):
-    matched_title = exp_id.split('/')
-    if len(matched_title) > 1:
-        extracted_title = matched_title[1]
-        archive.metadata.m_update_from_dict(dict(entry_name='ELabFTW Schema'))
-        child_archive.metadata.m_update_from_dict(dict(entry_name=extracted_title))
-    else:
-        logger.warning(f"Couldn't extract the title from {exp_id}")
-        extracted_title = None
-    return extracted_title
-
-
-def _set_experiment_metadata(raw_experiment, exp_archive, elab_instance, logger):
-    try:
-        exp_external_id = raw_experiment['url'].split('&id=')[1]
-        if match := re.search(r'.*/([^/]+)\.php', raw_experiment['url']):
-            elabftw_entity_type = match.group(1)
-        exp_archive.metadata.external_id = str(exp_external_id)
-        elab_instance.project_id = exp_external_id
-    except Exception:
-        logger.error('Could not set the the external_id from the experiment url')
-        elabftw_entity_type = None
-    return elabftw_entity_type
-
-
-def _parse_latest(
-    graph,
-    raw_experiment,
-    exp_archive,
-    mainfile,
-    exp_id,
-    archive,
-    logger,
-) -> ELabFTW:
-    try:
-        latest_elab_instance = ELabFTW(
-            author=raw_experiment.get('author').get('id'),
-            title=raw_experiment.get('name', None),
-            keywords=raw_experiment.get('keywords', '').split(','),
-            id=raw_experiment.get('id', ''),
-            status=raw_experiment.get('creative_work_status', 'Not set'),
-        )
-    except Exception:
-        logger.error('Failed to parse the eln file.')
-        raise ELabFTWParserError()
-
-    _ = _set_experiment_metadata(
-        raw_experiment, exp_archive, latest_elab_instance, logger
-    )
-    data_section = ELabFTWExperimentData(
-        body=raw_experiment.get('text', None),
-        created_at=raw_experiment.get('date_created', None),
-        extra_fields={
-            i: value for i, value in enumerate(raw_experiment['variable_measured'])
-        }
-        if raw_experiment.get('variable_measured') is not None
-        else None,
-    )
-    data_section.steps.extend(
-        [
-            ELabFTWSteps(
-                ordering=step.get('position', None),
-                deadline=step.get('expires', None),
-                finished=step.get('creative_work_status', None) == 'finished',
-                body=step.get('item_list_element', [{'text': None}])[0]['text'],
-            )
-            for step in raw_experiment.get('step', [])
-        ]
-    )
-
-    data_section.experiments_links.extend(
-        [
-            ELabFTWExperimentLink(title=exp_link.get('id', None))
-            for exp_link in raw_experiment.get('mentions', [])
-        ]
-    )
-
-    parent_folder_raw_path = mainfile.split('/')[-2]
-    for file_id in raw_experiment.get('has_part', []):
-        file_section = _create_file_section(
-            graph[file_id['id']], graph, parent_folder_raw_path, logger
-        )
-        latest_elab_instance.experiment_files.append(file_section)
-
-    latest_elab_instance.m_add_sub_section(
-        latest_elab_instance.m_def.all_sub_sections['experiment_data'], data_section
-    )
-
-    _ = _set_child_entry_name(exp_id, exp_archive, archive, logger)
-
-    return latest_elab_instance
-
-
-m_package.__init_metainfo__()
diff --git a/nomad/parsing/elabftw/nomad_plugin.yaml b/nomad/parsing/elabftw/nomad_plugin.yaml
deleted file mode 100644
index a501d84a54c9c0a72b2273b5699880408b399363..0000000000000000000000000000000000000000
--- a/nomad/parsing/elabftw/nomad_plugin.yaml
+++ /dev/null
@@ -1,22 +0,0 @@
-code_category: ELN
-code_homepage: https://www.elabftw.net/
-code_name: eLabFTW
-metadata:
-  codeCategory: ELN
-  codeLabel: eLabFTW
-  codeLabelStyle: 'capitals: L, F, T, W.'
-  codeName: elabftw
-  codeUrl: https://www.elabftw.net/
-  parserDirName: nomad/parsing/elabftw
-  parserGitUrl: https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR.git
-  preabmle: ""
-  status: production
-  tableOfFiles: |
-    |Input Filename| Description|
-    |--- | --- |
-    |`*.ro-crate-metadata.json` | **Mainfile** as part of the .eln eLabFTW export |
-    |`*` | Files in .eln eLabFTW export that are potentially references by the mainfile |
-name: parsers/elabftw
-parser_class_name: nomad.parsing.elabftw.ELabFTWParser
-python_package: nomad.parsing.elabftw
-plugin_source_code_url: https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR/-/tree/develop/nomad/parsing/elabftw
diff --git a/pyproject.toml b/pyproject.toml
index f4ef5dd576fca78bcd96b909182990fbf284c1de..89830b3b9a467f27e73e055c9aee58a47fecedbc 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -64,7 +64,6 @@ repository = 'https://gitlab.mpcdf.mpg.de/nomad-lab/nomad-FAIR'
 parsing = [
     'h5py==3.11.0',
     'netCDF4==1.6.5',
-    'nomad-openbis>=1.0',
     'rdkit==2023.9.5',
     'python-magic-bin >= 0.4; sys_platform == "win32"',
 ]
diff --git a/requirements-dev.txt b/requirements-dev.txt
index eeb0ccf8d91ddff2fcbdc0ed3d6a8b164bca7cad..d3d54b6db1eb65c796607a5fb949998e03609d87 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -50,7 +50,7 @@ elasticsearch-dsl==7.4.0  # via -r requirements.txt, nomad-lab (pyproject.toml)
 email-validator==1.3.1    # via optimade, -r requirements.txt
 escapism==1.0.1           # via dockerspawner, -r requirements.txt
 essential-generators==1.0  # via nomad-lab (pyproject.toml)
-et-xmlfile==1.1.0         # via openpyxl, -r requirements.txt
+et-xmlfile==2.0.0         # via openpyxl, -r requirements.txt
 execnet==2.1.1            # via pytest-xdist
 executing==2.1.0          # via devtools
 fastapi==0.99.1           # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml)
@@ -107,7 +107,7 @@ mkdocs-click==0.8.1       # via nomad-lab (pyproject.toml)
 mkdocs-get-deps==0.2.0    # via mkdocs
 mkdocs-git-revision-date-localized-plugin==1.3.0  # via nomad-lab (pyproject.toml)
 mkdocs-glightbox==0.4.0   # via nomad-lab (pyproject.toml)
-mkdocs-macros-plugin==1.3.6  # via nomad-lab (pyproject.toml)
+mkdocs-macros-plugin==1.3.7  # via nomad-lab (pyproject.toml)
 mkdocs-material==9.5.42   # via nomad-lab (pyproject.toml)
 mkdocs-material-extensions==1.3.1  # via mkdocs-material, nomad-lab (pyproject.toml)
 mkdocs-redirects==1.2.1   # via nomad-lab (pyproject.toml)
@@ -121,7 +121,6 @@ mypy-extensions==1.0.0    # via mypy
 names==0.3.0              # via nomad-lab (pyproject.toml)
 netcdf4==1.6.5            # via -r requirements.txt, nomad-lab (pyproject.toml)
 networkx==3.4.2           # via matid, pymatgen, -r requirements.txt
-nomad-openbis==1.0.0      # via -r requirements.txt, nomad-lab (pyproject.toml)
 nptyping==1.4.4           # via -r requirements.txt, nomad-lab (pyproject.toml)
 numpy==1.26.4             # via ase, cftime, contourpy, h5grove, h5py, matid, matplotlib, monty, netcdf4, nptyping, pandas, pyedr, pymatgen, rdkit, scikit-learn, scipy, spglib, tifffile, xarray, -r requirements.txt, nomad-lab (pyproject.toml)
 oauthenticator==15.1.0    # via -r requirements.txt, nomad-lab (pyproject.toml)
@@ -133,9 +132,9 @@ packaging==24.1           # via deprecation, gunicorn, jupyterhub, matplotlib, m
 paginate==0.5.7           # via mkdocs-material
 palettable==3.3.3         # via pymatgen, -r requirements.txt
 pamela==1.2.0 ; sys_platform != 'win32'  # via jupyterhub, -r requirements.txt
-pandas==2.2.3             # via nomad-openbis, panedr, pymatgen, xarray, -r requirements.txt, nomad-lab (pyproject.toml)
+pandas==2.2.3             # via panedr, pymatgen, xarray, -r requirements.txt, nomad-lab (pyproject.toml)
 panedr==0.8.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
-parmed==4.2.2             # via -r requirements.txt, nomad-lab (pyproject.toml)
+parmed==4.3.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 pathspec==0.12.1          # via mkdocs, mkdocs-macros-plugin
 pillow==10.0.1            # via matplotlib, rdkit, -c (workspace), -r requirements.txt
 pint==0.17                # via -r requirements.txt, nomad-lab (pyproject.toml)
@@ -154,25 +153,25 @@ pyedr==0.8.0              # via panedr, -r requirements.txt
 pygments==2.18.0          # via devtools, mkdocs-material, sphinx, -r requirements.txt
 pyjwt==2.6.0              # via -r requirements.txt, nomad-lab (pyproject.toml)
 pymatgen==2024.5.1        # via -r requirements.txt, nomad-lab (pyproject.toml)
-pymdown-extensions==10.11.2  # via mkdocs-material
+pymdown-extensions==10.12  # via mkdocs-material
 pymongo==4.6.3            # via mongoengine, optimade, -r requirements.txt, nomad-lab (pyproject.toml)
 pyparsing==3.2.0          # via matplotlib, rdflib, -r requirements.txt
 pyrsistent==0.20.0        # via jsonschema, -r requirements.txt
 pytest==7.4.4             # via pytest-asyncio, pytest-cov, pytest-split, pytest-timeout, pytest-xdist, nomad-lab (pyproject.toml)
 pytest-asyncio==0.23.8    # via nomad-lab (pyproject.toml)
-pytest-cov==5.0.0         # via nomad-lab (pyproject.toml)
+pytest-cov==6.0.0         # via nomad-lab (pyproject.toml)
 pytest-split==0.10.0      # via nomad-lab (pyproject.toml)
 pytest-timeout==2.3.1     # via nomad-lab (pyproject.toml)
 pytest-xdist==3.6.1       # via nomad-lab (pyproject.toml)
-python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, nomad-openbis, pandas, rfc3161ng, -r requirements.txt
+python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, ghp-import, jupyterhub, matplotlib, mkdocs-macros-plugin, pandas, rfc3161ng, -r requirements.txt
 python-dotenv==1.0.1      # via uvicorn, -r requirements.txt
 python-gitlab==2.10.1     # via nomad-lab (pyproject.toml)
 python-json-logger==2.0.2  # via jupyter-telemetry, -r requirements.txt, nomad-lab (pyproject.toml)
-python-keycloak==4.6.2    # via -r requirements.txt, nomad-lab (pyproject.toml)
+python-keycloak==4.6.3    # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-logstash==0.4.6    # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-magic==0.4.24      # via -r requirements.txt, nomad-lab (pyproject.toml)
 python-magic-bin==0.4.14 ; sys_platform == 'win32'  # via -r requirements.txt, nomad-lab (pyproject.toml)
-python-multipart==0.0.12  # via -r requirements.txt, nomad-lab (pyproject.toml)
+python-multipart==0.0.17  # via -r requirements.txt, nomad-lab (pyproject.toml)
 pytz==2024.2              # via mkdocs-git-revision-date-localized-plugin, mongomock, pandas, -r requirements.txt, nomad-lab (pyproject.toml)
 pywin32==308 ; sys_platform == 'win32'  # via docker, -r requirements.txt
 pyyaml==6.0.2             # via mkdocs, mkdocs-get-deps, mkdocs-macros-plugin, pybtex, pymdown-extensions, pyyaml-env-tag, uvicorn, -r requirements.txt, nomad-lab (pyproject.toml)
@@ -181,7 +180,7 @@ rdflib==5.0.0             # via -r requirements.txt, nomad-lab (pyproject.toml)
 rdkit==2023.9.5           # via -r requirements.txt, nomad-lab (pyproject.toml)
 recommonmark==0.7.1       # via -r requirements.txt, nomad-lab (pyproject.toml)
 regex==2024.9.11          # via mkdocs-material
-requests==2.31.0          # via docker, jupyterhub, mkdocs-material, nomad-openbis, oauthenticator, optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, -r requirements.txt, nomad-lab (pyproject.toml)
+requests==2.31.0          # via docker, jupyterhub, mkdocs-material, oauthenticator, optimade, pymatgen, python-gitlab, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, -r requirements.txt, nomad-lab (pyproject.toml)
 requests-toolbelt==1.0.0  # via python-gitlab, python-keycloak, -r requirements.txt
 rfc3161ng==2.1.3          # via -r requirements.txt, nomad-lab (pyproject.toml)
 rfc3339-validator==0.1.4  # via jsonschema, -r requirements.txt
@@ -194,7 +193,7 @@ runstats==2.0.0           # via -r requirements.txt, nomad-lab (pyproject.toml)
 scikit-learn==1.5.2       # via matid, -r requirements.txt, nomad-lab (pyproject.toml)
 scipy==1.14.1             # via ase, pymatgen, scikit-learn, -r requirements.txt, nomad-lab (pyproject.toml)
 sentinels==1.0.0          # via mongomock, -r requirements.txt
-setuptools==75.2.0        # via nomad-lab (pyproject.toml)
+setuptools==75.3.0        # via nomad-lab (pyproject.toml)
 six==1.16.0               # via asttokens, basicauth, elasticsearch-dsl, html5lib, pybtex, python-dateutil, rdflib, rfc3339-validator, validators, -r requirements.txt
 smmap==5.0.1              # via gitdb, -r requirements.txt
 sniffio==1.3.1            # via anyio, httpx, -r requirements.txt
@@ -213,16 +212,15 @@ starlette==0.27.0         # via fastapi, -r requirements.txt
 structlog==24.4.0         # via -r requirements.txt, nomad-lab (pyproject.toml)
 super-collections==0.5.3  # via mkdocs-macros-plugin
 sympy==1.13.3             # via pymatgen, -r requirements.txt
-tabulate==0.8.9           # via nomad-openbis, pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
+tabulate==0.8.9           # via pymatgen, -r requirements.txt, nomad-lab (pyproject.toml)
 tenacity==9.0.0           # via plotly, -r requirements.txt
 termcolor==2.5.0          # via mkdocs-macros-plugin
-texttable==1.7.0          # via nomad-openbis, -r requirements.txt
 threadpoolctl==3.5.0      # via scikit-learn, -r requirements.txt
 tifffile==2024.9.20       # via h5grove, -r requirements.txt
 tomli==2.0.2 ; python_full_version <= '3.11'  # via coverage
 toposort==1.10            # via -r requirements.txt, nomad-lab (pyproject.toml)
 tornado==6.4.1            # via jupyterhub, -r requirements.txt
-tqdm==4.66.5              # via pyedr, pymatgen, -r requirements.txt
+tqdm==4.66.6              # via pyedr, pymatgen, -r requirements.txt
 traitlets==5.14.3         # via jupyter-telemetry, jupyterhub, -r requirements.txt
 types-python-dateutil==2.9.0.20241003  # via arrow, -r requirements.txt
 typing-extensions==4.12.2  # via alembic, fastapi, jwcrypto, mypy, pydantic, sqlalchemy, -r requirements.txt, nomad-lab (pyproject.toml)
@@ -231,8 +229,8 @@ tzdata==2024.2            # via celery, kombu, pandas, -r requirements.txt
 uncertainties==3.2.2      # via pymatgen, -r requirements.txt
 unidecode==1.3.2          # via -r requirements.txt, nomad-lab (pyproject.toml)
 uri-template==1.3.0       # via jsonschema, -r requirements.txt
-urllib3==1.26.20          # via docker, elasticsearch, nomad-openbis, requests, -r requirements.txt
-uv==0.4.26                # via nomad-lab (pyproject.toml)
+urllib3==1.26.20          # via docker, elasticsearch, requests, -r requirements.txt
+uv==0.4.29                # via nomad-lab (pyproject.toml)
 uvicorn==0.32.0           # via h5grove, -r requirements.txt, nomad-lab (pyproject.toml)
 uvloop==0.21.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'  # via uvicorn, -r requirements.txt
 validators==0.18.2        # via -r requirements.txt, nomad-lab (pyproject.toml)
diff --git a/requirements-plugins.txt b/requirements-plugins.txt
index 0bf99344fda0476245b2ba8d3001dd442ca45ead..4b9816a7833895f9f35e2c755516bdd6526e4090 100644
--- a/requirements-plugins.txt
+++ b/requirements-plugins.txt
@@ -47,7 +47,7 @@ eelsdbconverter @ git+https://github.com/nomad-coe/nomad-parser-eelsdb.git@788eb
 elasticsearch==7.17.12    # via elasticsearch-dsl, -c requirements-dev.txt
 elasticsearch-dsl==7.4.0  # via nomad-lab, -c requirements-dev.txt
 entrypoints==0.4          # via ipyparallel
-et-xmlfile==1.1.0         # via openpyxl, -c requirements-dev.txt
+et-xmlfile==2.0.0         # via openpyxl, -c requirements-dev.txt
 executing==2.1.0          # via stack-data, -c requirements-dev.txt
 fabio==2024.9.0           # via pyfai, silx
 fairmat-readers-xrd==0.0.7  # via pynxtools-xrd
@@ -140,12 +140,14 @@ nionui==7.1.1             # via nionswift
 nionutils==4.11.0         # via niondata, nionswift, nionswift-io, nionui
 nomad-aitoolkit @ git+https://github.com/FAIRmat-NFDI/nomad-aitoolkit.git@b203f8eb28dc4b6771a39d5c5b7ad3d9d8583ac8  # via -r default_plugins.txt
 nomad-dos-fingerprints==1.0.2  # via nomad-normalizer-plugin-dos
+nomad-external-eln-integrations @ git+https://github.com/FAIRmat-NFDI/nomad-external-eln-integrations@f6bcb5c7b1eaf3c83cf5aafc0e35f95d00a201a9  # via -r default_plugins.txt
 nomad-normalizer-plugin-bandstructure==1.0  # via -r default_plugins.txt
 nomad-normalizer-plugin-dos==1.0  # via -r default_plugins.txt
 nomad-normalizer-plugin-simulation-workflow==1.0  # via -r default_plugins.txt
 nomad-normalizer-plugin-soap==1.0  # via -r default_plugins.txt
 nomad-normalizer-plugin-spectra==1.0  # via -r default_plugins.txt
 nomad-normalizer-plugin-system==1.0  # via -r default_plugins.txt
+nomad-openbis==1.0.0      # via nomad-external-eln-integrations
 nomad-parser-plugins-atomistic==1.0.2  # via -r default_plugins.txt
 nomad-parser-plugins-database==1.0  # via -r default_plugins.txt
 nomad-parser-plugins-electronic==1.0.2  # via -r default_plugins.txt
@@ -167,10 +169,10 @@ orix==0.13.2              # via diffsims, kikuchipy, pyxem
 orjson==3.10.10           # via h5grove, nomad-lab, -c requirements-dev.txt
 packaging==24.1           # via dask, deprecation, hyperspy, ipykernel, jupyter-server, jupyterlab, jupyterlab-server, lazy-loader, matplotlib, mdanalysis, nbconvert, pint, plotly, pooch, scikit-image, silx, tables, xarray, xraydb, -c requirements-dev.txt
 palettable==3.3.3         # via pymatgen, -c requirements-dev.txt
-pandas==2.2.3             # via eelsdbconverter, ifes-apt-tc-data-modeling, nomad-lab, panedr, pymatgen, pynxtools, radioactivedecay, xarray, -c requirements-dev.txt
+pandas==2.2.3             # via eelsdbconverter, ifes-apt-tc-data-modeling, nomad-lab, nomad-openbis, panedr, pymatgen, pynxtools, radioactivedecay, xarray, -c requirements-dev.txt
 pandocfilters==1.5.1      # via nbconvert
 panedr==0.8.0             # via nomad-lab, nomad-parser-plugins-atomistic, -c requirements-dev.txt
-parmed==4.2.2             # via nomad-lab, -c requirements-dev.txt
+parmed==4.3.0             # via nomad-lab, -c requirements-dev.txt
 parso==0.8.4              # via jedi
 partd==1.4.2              # via dask
 perovskite-solar-cell-database @ git+https://github.com/FAIRmat-NFDI/nomad-perovskite-solar-cells-database.git@f394d21abafeb659729af0c94e5f90949fce01c1  # via -r default_plugins.txt
@@ -212,9 +214,9 @@ pynxtools-xrd==0.0.2      # via pynxtools
 pyparsing==3.2.0          # via matplotlib, -c requirements-dev.txt
 pyrsistent==0.20.0        # via jsonschema, -c requirements-dev.txt
 python-box==7.2.0         # via rosettasciio
-python-dateutil==2.9.0.post0  # via arrow, elasticsearch-dsl, hyperspy, ipyparallel, jupyter-client, matplotlib, pandas, rfc3161ng, rosettasciio, -c requirements-dev.txt
+python-dateutil==2.9.0.post0  # via arrow, elasticsearch-dsl, hyperspy, ipyparallel, jupyter-client, matplotlib, nomad-openbis, pandas, rfc3161ng, rosettasciio, -c requirements-dev.txt
 python-json-logger==2.0.2  # via jupyter-events, -c requirements-dev.txt
-python-keycloak==4.6.2    # via nomad-lab, -c requirements-dev.txt
+python-keycloak==4.6.3    # via nomad-lab, -c requirements-dev.txt
 python-magic==0.4.24      # via nomad-lab, -c requirements-dev.txt
 pytz==2024.2              # via nionswift, nomad-lab, pandas, -c requirements-dev.txt
 pywin32==308 ; platform_python_implementation != 'PyPy' and sys_platform == 'win32'  # via jupyter-core, -c requirements-dev.txt
@@ -225,7 +227,7 @@ pyzeo==0.1.6              # via nomad-porous-materials
 pyzmq==26.2.0             # via ipykernel, ipyparallel, jupyter-client, jupyter-console, jupyter-server
 radioactivedecay==0.5.1   # via ifes-apt-tc-data-modeling
 rdkit==2023.9.5           # via perovskite-solar-cell-database, -c requirements-dev.txt
-requests==2.31.0          # via eelsdbconverter, hyperspy, jupyterlab-server, nomad-lab, pooch, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, -c requirements-dev.txt
+requests==2.31.0          # via eelsdbconverter, hyperspy, jupyterlab-server, nomad-lab, nomad-openbis, pooch, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, -c requirements-dev.txt
 requests-toolbelt==1.0.0  # via python-keycloak, -c requirements-dev.txt
 rfc3161ng==2.1.3          # via nomad-lab, -c requirements-dev.txt
 rfc3339-validator==0.1.4  # via jsonschema, -c requirements-dev.txt
@@ -237,7 +239,7 @@ scikit-image==0.22.0      # via hyperspy, kikuchipy, pyxem
 scikit-learn==1.5.2       # via kikuchipy, matid, nomad-lab, pyxem, -c requirements-dev.txt
 scipy==1.14.1             # via ase, diffsims, findiff, griddataformats, hyperspy, kikuchipy, lmfit, mdanalysis, niondata, nionswift, nomad-lab, nomad-parser-plugins-atomistic, nomad-schema-plugin-simulation-workflow, orix, pyfai, pymatgen, pyxem, radioactivedecay, scikit-image, scikit-learn, sparse, xraydb, -c requirements-dev.txt
 send2trash==1.8.3         # via jupyter-server
-setuptools==75.2.0        # via radioactivedecay, -c requirements-dev.txt
+setuptools==75.3.0        # via radioactivedecay, -c requirements-dev.txt
 silx==2.1.1               # via pyfai
 six==1.16.0               # via anytree, asttokens, bleach, elasticsearch-dsl, pybtex, python-dateutil, rfc3339-validator, -c requirements-dev.txt
 sniffio==1.3.1            # via anyio, httpx, -c requirements-dev.txt
@@ -248,28 +250,29 @@ sqlalchemy==2.0.36        # via xraydb, -c requirements-dev.txt
 stack-data==0.6.3         # via ipython
 sympy==1.13.3             # via findiff, hyperspy, pymatgen, radioactivedecay, -c requirements-dev.txt
 tables==3.10.1            # via ifes-apt-tc-data-modeling
-tabulate==0.8.9           # via pymatgen, -c requirements-dev.txt
+tabulate==0.8.9           # via nomad-openbis, pymatgen, -c requirements-dev.txt
 tenacity==9.0.0           # via plotly, -c requirements-dev.txt
 terminado==0.18.1         # via jupyter-server, jupyter-server-terminals
+texttable==1.7.0          # via nomad-openbis
 threadpoolctl==3.5.0      # via mdanalysis, scikit-learn, -c requirements-dev.txt
 tifffile==2024.9.20       # via h5grove, hyperspy, scikit-image, -c requirements-dev.txt
 tinycss2==1.3.0           # via nbconvert
 toolz==1.0.0              # via dask, hyperspy, partd
 toposort==1.10            # via nomad-lab, -c requirements-dev.txt
 tornado==6.4.1            # via ipykernel, ipyparallel, jupyter-client, jupyter-server, jupyterlab, notebook, terminado, -c requirements-dev.txt
-tqdm==4.66.5              # via diffsims, hyperspy, ipyparallel, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem, -c requirements-dev.txt
+tqdm==4.66.6              # via diffsims, hyperspy, ipyparallel, kikuchipy, mdanalysis, orix, pyedr, pymatgen, pyxem, -c requirements-dev.txt
 traitlets==5.14.3         # via comm, ipykernel, ipyparallel, ipython, ipywidgets, jupyter-client, jupyter-console, jupyter-core, jupyter-events, jupyter-server, jupyterlab, matplotlib-inline, nbclient, nbconvert, nbformat, -c requirements-dev.txt
 traits==6.4.3             # via hyperspy, pyxem
 transforms3d==0.4.2       # via diffsims, pyxem
 types-python-dateutil==2.9.0.20241003  # via arrow, -c requirements-dev.txt
-typing-extensions==4.12.2  # via ipython, jwcrypto, orix, pydantic, sqlalchemy, tables, -c requirements-dev.txt
+typing-extensions==4.12.2  # via ipython, jwcrypto, nomad-lab, orix, pydantic, sqlalchemy, tables, -c requirements-dev.txt
 typish==1.9.3             # via nptyping, -c requirements-dev.txt
 tzdata==2024.2            # via pandas, tzlocal, -c requirements-dev.txt
 tzlocal==5.2              # via nionswift, pynxtools-em
 uncertainties==3.2.2      # via lmfit, pymatgen, -c requirements-dev.txt
 unidecode==1.3.2          # via nomad-lab, -c requirements-dev.txt
 uri-template==1.3.0       # via jsonschema, -c requirements-dev.txt
-urllib3==1.26.20          # via elasticsearch, requests, -c requirements-dev.txt
+urllib3==1.26.20          # via elasticsearch, nomad-openbis, requests, -c requirements-dev.txt
 wcwidth==0.2.13           # via prettytable, prompt-toolkit, -c requirements-dev.txt
 webcolors==24.8.0         # via jsonschema, -c requirements-dev.txt
 webencodings==0.5.1       # via bleach, tinycss2, -c requirements-dev.txt
diff --git a/requirements.txt b/requirements.txt
index b94c269ce4f1d407c86ce36c55e17f80a1f0da70..772c65b225748715d13743a03bded46651701586 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -44,7 +44,7 @@ elasticsearch==7.17.12    # via elasticsearch-dsl, nomad-lab (pyproject.toml)
 elasticsearch-dsl==7.4.0  # via nomad-lab (pyproject.toml)
 email-validator==1.3.1    # via optimade
 escapism==1.0.1           # via dockerspawner
-et-xmlfile==1.1.0         # via openpyxl
+et-xmlfile==2.0.0         # via openpyxl
 fastapi==0.99.1           # via h5grove, nomad-lab (pyproject.toml)
 filelock==3.3.1           # via nomad-lab (pyproject.toml)
 fonttools==4.54.1         # via matplotlib
@@ -97,7 +97,6 @@ mpmath==1.3.0             # via sympy
 msgpack==1.1.0            # via nomad-lab (pyproject.toml)
 netcdf4==1.6.5            # via nomad-lab (pyproject.toml)
 networkx==3.4.2           # via matid, pymatgen
-nomad-openbis==1.0.0      # via nomad-lab (pyproject.toml)
 nptyping==1.4.4           # via nomad-lab (pyproject.toml)
 numpy==1.26.4             # via ase, cftime, contourpy, h5grove, h5py, matid, matplotlib, monty, netcdf4, nptyping, pandas, pyedr, pymatgen, rdkit, scikit-learn, scipy, spglib, tifffile, xarray, nomad-lab (pyproject.toml)
 oauthenticator==15.1.0    # via nomad-lab (pyproject.toml)
@@ -108,9 +107,9 @@ orjson==3.10.10           # via h5grove, nomad-lab (pyproject.toml)
 packaging==24.1           # via deprecation, gunicorn, jupyterhub, matplotlib, mongomock, pint, plotly, sphinx, xarray
 palettable==3.3.3         # via pymatgen
 pamela==1.2.0 ; sys_platform != 'win32'  # via jupyterhub
-pandas==2.2.3             # via nomad-openbis, panedr, pymatgen, xarray, nomad-lab (pyproject.toml)
+pandas==2.2.3             # via panedr, pymatgen, xarray, nomad-lab (pyproject.toml)
 panedr==0.8.0             # via nomad-lab (pyproject.toml)
-parmed==4.2.2             # via nomad-lab (pyproject.toml)
+parmed==4.3.0             # via nomad-lab (pyproject.toml)
 pillow==10.0.1            # via matplotlib, rdkit, -c (workspace)
 pint==0.17                # via nomad-lab (pyproject.toml)
 plotly==5.24.1            # via pymatgen
@@ -129,21 +128,21 @@ pymatgen==2024.5.1        # via nomad-lab (pyproject.toml)
 pymongo==4.6.3            # via mongoengine, optimade, nomad-lab (pyproject.toml)
 pyparsing==3.2.0          # via matplotlib, rdflib
 pyrsistent==0.20.0        # via jsonschema
-python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, jupyterhub, matplotlib, nomad-openbis, pandas, rfc3161ng
+python-dateutil==2.9.0.post0  # via arrow, celery, elasticsearch-dsl, jupyterhub, matplotlib, pandas, rfc3161ng
 python-dotenv==1.0.1      # via uvicorn
 python-json-logger==2.0.2  # via jupyter-telemetry, nomad-lab (pyproject.toml)
-python-keycloak==4.6.2    # via nomad-lab (pyproject.toml)
+python-keycloak==4.6.3    # via nomad-lab (pyproject.toml)
 python-logstash==0.4.6    # via nomad-lab (pyproject.toml)
 python-magic==0.4.24      # via nomad-lab (pyproject.toml)
 python-magic-bin==0.4.14 ; sys_platform == 'win32'  # via nomad-lab (pyproject.toml)
-python-multipart==0.0.12  # via nomad-lab (pyproject.toml)
+python-multipart==0.0.17  # via nomad-lab (pyproject.toml)
 pytz==2024.2              # via mongomock, pandas, nomad-lab (pyproject.toml)
 pywin32==308 ; sys_platform == 'win32'  # via docker
 pyyaml==6.0.2             # via pybtex, uvicorn, nomad-lab (pyproject.toml)
 rdflib==5.0.0             # via nomad-lab (pyproject.toml)
 rdkit==2023.9.5           # via nomad-lab (pyproject.toml)
 recommonmark==0.7.1       # via nomad-lab (pyproject.toml)
-requests==2.31.0          # via docker, jupyterhub, nomad-openbis, oauthenticator, optimade, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, nomad-lab (pyproject.toml)
+requests==2.31.0          # via docker, jupyterhub, oauthenticator, optimade, pymatgen, python-keycloak, requests-toolbelt, rfc3161ng, sphinx, nomad-lab (pyproject.toml)
 requests-toolbelt==1.0.0  # via python-keycloak
 rfc3161ng==2.1.3          # via nomad-lab (pyproject.toml)
 rfc3339-validator==0.1.4  # via jsonschema
@@ -171,14 +170,13 @@ sqlalchemy==2.0.36        # via alembic, jupyterhub
 starlette==0.27.0         # via fastapi
 structlog==24.4.0         # via nomad-lab (pyproject.toml)
 sympy==1.13.3             # via pymatgen
-tabulate==0.8.9           # via nomad-openbis, pymatgen, nomad-lab (pyproject.toml)
+tabulate==0.8.9           # via pymatgen, nomad-lab (pyproject.toml)
 tenacity==9.0.0           # via plotly
-texttable==1.7.0          # via nomad-openbis
 threadpoolctl==3.5.0      # via scikit-learn
 tifffile==2024.9.20       # via h5grove
 toposort==1.10            # via nomad-lab (pyproject.toml)
 tornado==6.4.1            # via jupyterhub
-tqdm==4.66.5              # via pyedr, pymatgen
+tqdm==4.66.6              # via pyedr, pymatgen
 traitlets==5.14.3         # via jupyter-telemetry, jupyterhub
 types-python-dateutil==2.9.0.20241003  # via arrow
 typing-extensions==4.12.2  # via alembic, fastapi, jwcrypto, pydantic, sqlalchemy, nomad-lab (pyproject.toml)
@@ -187,7 +185,7 @@ tzdata==2024.2            # via celery, kombu, pandas
 uncertainties==3.2.2      # via pymatgen
 unidecode==1.3.2          # via nomad-lab (pyproject.toml)
 uri-template==1.3.0       # via jsonschema
-urllib3==1.26.20          # via docker, elasticsearch, nomad-openbis, requests
+urllib3==1.26.20          # via docker, elasticsearch, requests
 uvicorn==0.32.0           # via h5grove, nomad-lab (pyproject.toml)
 uvloop==0.21.0 ; platform_python_implementation != 'PyPy' and sys_platform != 'cygwin' and sys_platform != 'win32'  # via uvicorn
 validators==0.18.2        # via nomad-lab (pyproject.toml)
diff --git a/tests/data/datamodel/metainfo/eln/material_library/example-labfolder.archive.json b/tests/data/datamodel/metainfo/eln/material_library/example-labfolder.archive.json
deleted file mode 100644
index ff3644a78ed4b237614f3fa23cb6c2b109313561..0000000000000000000000000000000000000000
--- a/tests/data/datamodel/metainfo/eln/material_library/example-labfolder.archive.json
+++ /dev/null
@@ -1,9 +0,0 @@
-{
-    "data": {
-        "m_def": "nomad.datamodel.metainfo.eln.labfolder.LabfolderProject",
-        "labfolder_email": "email",
-        "password": "password",
-        "project_url": "project_url#?projectIds=1",
-        "entries": [{"id": "1", "version_id": "1", "type": "TEXT"}, {"id": "1", "version_id": "1", "type": "FILE"}, {"id": "1", "version_id": "1", "type": "TABLE"}, {"id": "1", "version_id": "1", "type": "WELL_PLATE"}, {"id": "1", "version_id": "1", "type": "DATA"}, {"id": "1", "version_id": "1", "type": "IMAGE"}]
-    }
-}
diff --git a/tests/data/parsers/chemotion/test.zip b/tests/data/parsers/chemotion/test.zip
deleted file mode 100644
index ea486fbf33502a85180b27daa3e9466433a2c378..0000000000000000000000000000000000000000
Binary files a/tests/data/parsers/chemotion/test.zip and /dev/null differ
diff --git a/tests/data/parsers/elabftw/test.eln b/tests/data/parsers/elabftw/test.eln
deleted file mode 100644
index 2cb469a0232df9dfb712ec3fff8aed77c9764dce..0000000000000000000000000000000000000000
Binary files a/tests/data/parsers/elabftw/test.eln and /dev/null differ
diff --git a/tests/datamodel/metainfo/eln/test_labfolder.py b/tests/datamodel/metainfo/eln/test_labfolder.py
deleted file mode 100644
index b92aeb6bfcb2186f4be2360a458155294311dfcf..0000000000000000000000000000000000000000
--- a/tests/datamodel/metainfo/eln/test_labfolder.py
+++ /dev/null
@@ -1,276 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-from unittest.mock import MagicMock
-import pytest
-from nomad import utils
-import json
-import requests
-
-from tests.normalizing.conftest import run_processing
-from nomad.processing.data import Upload
-from nomad.datamodel.context import ServerContext
-from nomad.datamodel.metainfo.eln.labfolder import (
-    LabfolderProject,
-    LabfolderImportError,
-)
-from nomad.utils.exampledata import ExampleData
-
-
-def test_labfolder_integration(mongo_function, monkeypatch, user1):
-    directory = 'tests/data/datamodel/metainfo/eln/material_library'
-    mainfile = 'example-labfolder.archive.json'
-
-    test_archive = run_processing(directory, mainfile)
-
-    # assert archive
-    assert test_archive.metadata.entry_type == 'LabfolderProject'
-    assert test_archive.data.project_url is not None
-    assert len(test_archive.data.entries) == 6
-
-
-@pytest.mark.parametrize(
-    'status_code,project_url,labfolder_email,password,element_data,response_data',
-    [
-        pytest.param(
-            200,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            'test_password',
-            [{'elements': [{'id': '1', 'version_id': '1', 'type': 'TEXT'}]}],
-            {
-                'entry_id': '1',
-                'id': '1',
-                'version_id': '1',
-                'creation_date': '2022-08-29T09:22:30+00:00',
-                'version_date': '2022-08-29T09:22:30+00:00',
-                'owner_id': '1',
-                'element_type': 'TEXT',
-                'content': '<p>test content</p>',
-            },
-            id='TEXT_element',
-        ),
-        pytest.param(
-            200,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            'test_password',
-            [{'elements': [{'id': '1', 'version_id': '1', 'type': 'TABLE'}]}],
-            {
-                'entry_id': '1',
-                'id': '1',
-                'version_id': '1',
-                'creation_date': '2022-08-29T09:22:33+00:00',
-                'version_date': '2022-08-29T09:22:33+00:00',
-                'owner_id': '1',
-                'element_type': 'TABLE',
-                'title': 'Table Title',
-                'content': {'version': '14.1.3', 'nested_content': 'more content'},
-            },
-            id='TABLE_element',
-        ),
-        pytest.param(
-            200,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            'test_password',
-            [{'elements': [{'id': '1', 'version_id': '1', 'type': 'WELL_PLATE'}]}],
-            {
-                'entry_id': '1',
-                'id': '1',
-                'version_id': '1',
-                'creation_date': '2022-08-29T09:22:33+00:00',
-                'version_date': '2022-08-29T09:22:33+00:00',
-                'owner_id': '1',
-                'element_type': 'WELL_PLATE',
-                'title': 'Wellplate title',
-                'content': {'version': '14.1.3', 'nested_content': 'more _content'},
-                'meta_data': {
-                    'plate': {'size': '24'},
-                    'activeLayer': {'name': 'Composite', 'type': 'COMPOSITE'},
-                },
-            },
-            id='WELL_PLATE_element',
-        ),
-        pytest.param(
-            200,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            'test_password',
-            [{'elements': [{'id': '1', 'version_id': '1', 'type': 'DATA'}]}],
-            {
-                'entry_id': '1',
-                'id': '1',
-                'version_id': '1',
-                'creation_date': '2022-08-29T09:22:33+00:00',
-                'version_date': '2022-08-29T09:22:34+00:00',
-                'owner_id': '1',
-                'element_type': 'DATA',
-                'data_elements': [
-                    {
-                        'type': 'DATA_ELEMENT_GROUP',
-                        'title': 'first title',
-                        'children': [
-                            {
-                                'type': 'SINGLE_DATA_ELEMENT',
-                                'title': 'child title',
-                                'value': '1',
-                                'unit': 'mL',
-                                'physical_quantity_id': '6',
-                            },
-                            {
-                                'type': 'DESCRIPTIVE_DATA_ELEMENT',
-                                'title': 'Water',
-                                'description': 'add up to 1 liter',
-                            },
-                        ],
-                    }
-                ],
-            },
-            id='DATA_element',
-        ),
-        pytest.param(
-            400,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            None,
-            'test_password',
-            None,
-            None,
-            id='missing_email',
-        ),
-        pytest.param(
-            400,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            None,
-            None,
-            None,
-            id='missing_password',
-        ),
-        pytest.param(
-            400,
-            None,
-            'test_email',
-            'test_password',
-            None,
-            None,
-            id='missing_project_url',
-        ),
-        pytest.param(
-            400, 'wrong_url', 'test_email', 'test_password', None, None, id='wrong_url'
-        ),
-        pytest.param(
-            400,
-            'https://labfolder.labforward.app/eln/notebook#?projectIds=1',
-            'test_email',
-            'test_password',
-            None,
-            None,
-            id='wrong_element_data',
-        ),
-    ],
-)
-def test_labfolder_detailed(
-    mongo_function,
-    monkeypatch,
-    user1,
-    status_code,
-    project_url,
-    labfolder_email,
-    password,
-    element_data,
-    response_data,
-):
-    logger = utils.get_logger(__name__)
-    base_api_url = 'https://labfolder.labforward.app/api/v2'
-
-    def mock_labfolder_json_method(*args, **kwargs):
-        mock_response = MagicMock()
-        mock_response.status_code = status_code
-        mock_response.url = '/test_endpoint'
-
-        if args[0] == f'{base_api_url}/entries?project_ids=1':
-            mock_response.return_value = element_data
-        else:
-            mock_response.return_value = response_data
-
-        mock_response.json.return_value = mock_response.return_value
-        return mock_response
-
-    def mock_labfolder_response_method(*args, **kwargs):
-        mock_response = MagicMock()
-        mock_response.status_code = status_code
-        mock_response.json.return_value = {'token': 'test'}
-        return mock_response
-
-    # patching API calls to labfolder server
-    monkeypatch.setattr(requests, 'post', mock_labfolder_response_method)
-    monkeypatch.setattr(requests, 'get', mock_labfolder_json_method)
-
-    # processing preparation
-    data = ExampleData(main_author=user1)
-    data.create_upload(upload_id='test_upload_id', published=False)
-
-    data.create_entry(
-        upload_id='test_upload_id',
-        entry_id='test_upload_id',
-        mainfile='tests/data/datamodel/metainfo/eln/material_library/example-labfolder.archive.json',
-    )
-
-    data.save(with_es=False)
-
-    upload = Upload.objects(upload_id='test_upload_id').first()
-    assert upload is not None
-
-    context = ServerContext(upload=upload)
-    test_archive = data.archives['test_upload_id']
-    test_archive.m_context = context
-
-    # Creating labfolder instance
-    labfolder_instance = LabfolderProject()
-    labfolder_instance.project_url = project_url
-    labfolder_instance.labfolder_email = labfolder_email
-    labfolder_instance.password = password
-    labfolder_instance.resync_labfolder_repository = True
-    test_archive.data = labfolder_instance
-
-    if status_code is 200:
-        labfolder_instance.normalize(test_archive, logger=logger)
-        assert len(labfolder_instance.entries) is 1
-        assert labfolder_instance.labfolder_email is None
-        assert labfolder_instance.password is None
-
-        with test_archive.m_context.raw_file(test_archive.metadata.mainfile, 'r') as f:
-            archive_data = json.load(f)['data']
-            assert archive_data.get('password', None) is None
-            assert archive_data.get('labfolder_email', None) is None
-
-        parsed_data = labfolder_instance.entries[0].elements[0].m_to_dict()
-        del parsed_data['m_def']
-        if parsed_data['element_type'] is not 'DATA':
-            assert json.dumps(parsed_data, sort_keys=True) == json.dumps(
-                response_data, sort_keys=True
-            )
-        else:
-            del parsed_data['labfolder_data']
-            assert json.dumps(parsed_data, sort_keys=True) == json.dumps(
-                response_data, sort_keys=True
-            )
-    else:
-        with pytest.raises(LabfolderImportError):
-            labfolder_instance.normalize(test_archive, logger=logger)
diff --git a/tests/datamodel/metainfo/eln/test_openbis.py b/tests/datamodel/metainfo/eln/test_openbis.py
deleted file mode 100644
index ae9f3712d6451143a9be229d8aeea40f8812df10..0000000000000000000000000000000000000000
--- a/tests/datamodel/metainfo/eln/test_openbis.py
+++ /dev/null
@@ -1,199 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-from unittest.mock import MagicMock
-from urllib.parse import urlparse
-
-import pytest
-import json
-from nomad_openbis import openbis
-
-from nomad.datamodel import ServerContext
-from nomad.datamodel.metainfo.eln.openbis import OpenbisEntry, OpenbisImportError
-from nomad.processing import Upload
-from nomad.utils.exampledata import ExampleData
-from nomad import utils
-
-
-def mocked_login(url):
-    if url is None:
-        if url is None:
-            raise ValueError('please provide a URL you want to connect to.')
-
-    if not url.startswith('http'):
-        url = 'https://' + url
-
-    url_obj = urlparse(url)
-    if url_obj.netloc is None or url_obj.netloc == '':
-        raise ValueError(
-            'please provide the url in this format: https://openbis.host.ch:8443'
-        )
-    if url_obj.hostname is None:
-        raise ValueError('hostname is missing')
-    if url_obj.scheme == 'http':
-        raise ValueError('always use https!')
-
-
-@pytest.mark.parametrize(
-    'status_code,project_url,username,password,space_data,project_data,experiment_data',
-    [
-        pytest.param(
-            200,
-            'https://openbis-server.ethz.ch/openbis/webapp/eln-lims/',
-            'test_email',
-            'test_password',
-            {
-                'code': 'code_value',
-                'frozen': False,
-                'permId': 'permId_value',
-            },
-            {
-                'code': 'code_value',
-                'frozen': False,
-                'permId': 'permId_value',
-                'identifier': '/DEFAULT/DEFAULT',
-            },
-            {'code': 'code_value', 'frozen': False, 'permId': 'permId_value'},
-            id='successful parsing',
-        ),
-        pytest.param(
-            400,
-            'http://openbis-server.ethz.ch/openbis/webapp/eln-lims/',
-            'test_email',
-            'test_password',
-            {
-                'code': 'code_value',
-                'frozen': False,
-                'permId': 'permId_value',
-            },
-            {
-                'code': 'code_value',
-                'frozen': False,
-                'permId': 'permId_value',
-                'identifier': '/DEFAULT/DEFAULT',
-            },
-            {'code': 'code_value', 'frozen': False, 'permId': 'permId_value'},
-            id='incorrect project_url',
-        ),
-    ],
-)
-def test_openbis(
-    mongo_function,
-    monkeypatch,
-    user1,
-    status_code,
-    project_url,
-    username,
-    password,
-    space_data,
-    project_data,
-    experiment_data,
-):
-    logger = utils.get_logger(__name__)
-
-    class AttrsAll:
-        def __init__(self, test_data):
-            self.data = test_data
-
-        def all(self):
-            return self.data
-
-    class AttrsDescriptor:
-        def __get__(self, instance, owner):
-            data = instance.data if instance else {}
-            return AttrsAll(data)
-
-    class MockedSpaces:
-        def __init__(self):
-            self.data = space_data
-
-        attrs = AttrsDescriptor()
-
-        @staticmethod
-        def get_projects():
-            class MockedProjects:
-                def __init__(self):
-                    self.data = project_data
-
-                attrs = AttrsDescriptor()
-
-                @staticmethod
-                def get_experiments():
-                    class MockedExperiments:
-                        def __init__(self):
-                            self.data = experiment_data
-
-                        attrs = AttrsDescriptor()
-
-                    return [MockedExperiments()]
-
-            return [MockedProjects()]
-
-    def mock_openbis_response(*args, **kwargs):
-        mock_response = MagicMock()
-        mock_response.login.return_value = mocked_login(project_url)
-        mock_response.logout.return_value = None
-        mock_response.get_spaces.return_value = [MockedSpaces()]
-        return mock_response
-
-    # patching openbis attrs
-    monkeypatch.setattr(openbis, 'Openbis', mock_openbis_response)
-
-    data = ExampleData(main_author=user1)
-    data.create_upload(upload_id='test_upload_id', published=False)
-
-    data.create_entry(
-        upload_id='test_upload_id',
-        entry_id='test_upload_id',
-        mainfile='tests/data/datamodel/metainfo/eln/material_library/example-openbis.archive.json',
-    )
-
-    data.save(with_es=False)
-
-    upload = Upload.objects(upload_id='test_upload_id').first()
-    assert upload is not None
-
-    context = ServerContext(upload=upload)
-    test_archive = data.archives['test_upload_id']
-    test_archive.m_context = context
-    openbis_instance = OpenbisEntry()
-    openbis_instance.project_url = project_url
-    openbis_instance.username = username
-    openbis_instance.password = password
-    test_archive.data = openbis_instance
-
-    if status_code is 200:
-        openbis_instance.normalize(test_archive, logger=logger)
-        assert len(openbis_instance.spaces) is 1
-        assert openbis_instance.username is None
-        assert openbis_instance.password is None
-
-        parsed_openbis_spaces = openbis_instance.spaces[0].m_to_dict()
-        parsed_openbis_projects = parsed_openbis_spaces.pop('projects')[0]
-        parsed_openbis_experiments = parsed_openbis_projects.pop('experiments')[0]
-        assert json.dumps(parsed_openbis_spaces, sort_keys=True) == json.dumps(
-            space_data, sort_keys=True
-        )
-        assert json.dumps(parsed_openbis_projects, sort_keys=True) == json.dumps(
-            project_data, sort_keys=True
-        )
-        assert json.dumps(parsed_openbis_experiments, sort_keys=True) == json.dumps(
-            experiment_data, sort_keys=True
-        )
-    if status_code is 400:
-        with pytest.raises(OpenbisImportError):
-            openbis_instance.normalize(test_archive, logger=logger)
diff --git a/tests/parsing/test_chemotion_parser.py b/tests/parsing/test_chemotion_parser.py
deleted file mode 100644
index 7854780bc9f3b7044e8784be14be399195c2542e..0000000000000000000000000000000000000000
--- a/tests/parsing/test_chemotion_parser.py
+++ /dev/null
@@ -1,79 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-import pytest
-import numpy as np
-from nomad.config import config
-from nomad.parsing.chemotion.chemotion import (
-    ChemotionParser,
-    _element_type_section_mapping,
-)
-from nomad.files import StagingUploadFiles
-from tests.parsing.test_elabftw_parser import _assert_parsed_data
-from tests.processing.test_data import run_processing
-
-
-def _assert_chemotion(test_archive):
-    assert test_archive.data is not None
-    assert test_archive.data.Collection is not None
-
-    assert test_archive.data.Collection[0].label == 'Modification Sequence'
-    assert (
-        test_archive.data.Collection[0].user_id
-        == '60c41de1-b83d-4487-a599-8eb310847b8a'
-    )
-    assert test_archive.data.Collection[0].is_locked is False
-
-    assert len(test_archive.data.Sample) == 4
-    assert test_archive.data.Sample[0].xref == {
-        'cas': {'label': '554-95-0', 'value': '554-95-0'}
-    }
-    assert test_archive.data.Sample[1].name == 'Aqua dest.'
-    assert test_archive.data.Sample[2].target_amount_value == np.float16(0.001)
-    assert test_archive.data.Sample[3].target_amount_value == np.float16(0.002)
-
-    assert len(test_archive.data.CollectionsSample) == 4
-    assert len(test_archive.data.Fingerprint) == 3
-    assert len(test_archive.data.Molecule) == 3
-    assert test_archive.data.Molecule[1].inchikey == 'XLYOFNOQVPJJNP-UHFFFAOYSA-N'
-
-    for k in _element_type_section_mapping.keys():
-        k = 'Reactions' if k == 'Reaction' else k
-        assert k in test_archive.data.m_def.all_properties
-        assert test_archive.data.m_def.all_properties[k] is not None
-
-
-@pytest.mark.timeout(config.tests.default_timeout)
-def test_chemotion_parser(raw_files_function, proc_infra, api_v1, user1):
-    upload = run_processing(
-        ('test_upload', 'tests/data/parsers/chemotion/test.zip'), user1
-    )
-
-    assert upload.total_entries_count == 2
-    assert len(upload.successful_entries) == 2
-
-    with upload.entries_metadata() as entries:
-        _assert_parsed_data(
-            upload.upload_id,
-            entries,
-            StagingUploadFiles,
-            ChemotionParser(),
-            _assert_chemotion,
-            'export.json',
-            published=False,
-        )
diff --git a/tests/parsing/test_elabftw_parser.py b/tests/parsing/test_elabftw_parser.py
deleted file mode 100644
index dd729ef028dd3e831fb607b0e1ec8324bb24b88b..0000000000000000000000000000000000000000
--- a/tests/parsing/test_elabftw_parser.py
+++ /dev/null
@@ -1,100 +0,0 @@
-#
-# Copyright The NOMAD Authors.
-#
-# This file is part of NOMAD. See https://nomad-lab.eu for further info.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#     http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-import pytest
-
-from nomad.config import config
-from nomad.parsing.elabftw.elabftw import ELabFTWParser
-from nomad.datamodel import EntryArchive, EntryMetadata, Context
-from nomad.files import StagingUploadFiles, UploadFiles
-from tests.processing.test_data import run_processing
-
-
-def _assert_parsed_data(
-    upload_id,
-    entries,
-    cls,
-    parser,
-    assert_fnc,
-    mainfile_str,
-    no_archive: bool = False,
-    **kwargs,
-):
-    upload_files = UploadFiles.get(upload_id)
-    assert upload_files is not None
-    assert isinstance(upload_files, cls)
-
-    for entry in entries:
-        with upload_files.raw_file(entry.mainfile, 'rb') as f:
-            f.read()
-
-        try:
-            with upload_files.read_archive(entry.entry_id) as archive:
-                assert entry.entry_id in archive
-            if entry.entry_name and mainfile_str in entry.entry_name:
-                test_archive = EntryArchive(
-                    metadata=EntryMetadata(entry_id=entry.entry_id, upload_id=upload_id)
-                )
-                test_archive.m_context = Context()
-                mainfile = '/'.join([upload_files.os_path, 'raw', entry.mainfile])
-                parser.parse(
-                    mainfile, test_archive, None, child_archives={'0': test_archive}
-                )
-
-                assert_fnc(test_archive)
-
-        except KeyError:
-            assert no_archive
-
-    upload_files.close()
-
-
-def _assert_elabftw(test_archive):
-    assert test_archive.data is not None
-    assert test_archive.data.title == 'Test'
-    assert test_archive.data.id == 'ro-crate-metadata.json'
-    assert len(test_archive.data.experiment_data.experiments_links) == 1
-    assert len(test_archive.data.experiment_files) == 5
-    assert test_archive.data.experiment_data.experiments_links[0].title == 'JSON test '
-    assert test_archive.data.experiment_data.items_links[0].title == 'Untitled'
-    assert test_archive.data.experiment_data.extra_fields is not None
-    for item in test_archive.data.experiment_files:
-        assert item.type == 'File'
-        assert item.file is not None
-        assert item.id is not None
-
-
-@pytest.mark.timeout(config.tests.default_timeout)
-def test_elabftw_parser(raw_files_function, proc_infra, api_v1, user1):
-    upload = run_processing(
-        ('test_upload', 'tests/data/parsers/elabftw/test.eln'), user1
-    )
-
-    assert upload.total_entries_count == 2
-    assert len(upload.successful_entries) == 2
-
-    with upload.entries_metadata() as entries:
-        _assert_parsed_data(
-            upload.upload_id,
-            entries,
-            StagingUploadFiles,
-            ELabFTWParser(),
-            _assert_elabftw,
-            'ro-crate-metadata.json',
-            published=False,
-        )