Metadata schema

{ 
  "$schema": "http://json-schema.org/draft-07/schema#",
  "title": "Generated schema for Root",
  "type": "object",
  "properties": {
    "project": {
      "type": "object",
      "properties": {
        "name": {
          "type": "string"
        },
        "label": {
          "type": "string"
        }
      },
      "required": [
        "name",
        "label"
      ]
    },
    "material": {
      "type": "object",
      "properties": {
        "formula": {
          "type": "string"
        },
        "input": {
          "type": "object",
          "properties": {
            "species": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "sites": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "lattice": {
              "type": "object",
              "properties": {
                "a": {
                  "type": "number"
                },
                "b": {
                  "type": "number"
                },
                "c": {
                  "type": "number"
                },
                "alpha": {
                  "type": "number"
                },
                "beta": {
                  "type": "number"
                },
                "gamma": {
                  "type": "number"
                }
              },
              "required": [
                "a",
                "b",
                "c",
                "alpha",
                "beta",
                "gamma"
              ]
            },
            "cell": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            }
          },
          "required": [
            "species",
            "sites",
            "lattice",
            "cell"
          ]
        },
        "output": {
          "type": "object",
          "properties": {
            "species": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "sites": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            },
            "lattice": {
              "type": "object",
              "properties": {
                "a": {
                  "type": "number"
                },
                "b": {
                  "type": "number"
                },
                "c": {
                  "type": "number"
                },
                "alpha": {
                  "type": "number"
                },
                "beta": {
                  "type": "number"
                },
                "gamma": {
                  "type": "number"
                }
              },
              "required": [
                "a",
                "b",
                "c",
                "alpha",
                "beta",
                "gamma"
              ]
            },
            "cell": {
              "type": "array",
              "items": {
                "type": "array",
                "items": {
                  "type": "number"
                }
              }
            }
          },
          "required": [
            "species",
            "sites",
            "lattice",
            "cell"
          ]
        }
      },
      "required": [
        "formula",
        "input",
        "output"
      ]
    },
    "process": {
      "type": "object",
      "properties": {
        "method": {
          "type": "string"
        },
        "agent": {
          "type": "object",
          "properties": {
            "name": {
              "type": "string"
            },
            "version": {
              "type": "string"
            }
          },
          "required": [
            "name",
            "version"
          ]
        },
        "isExperiment": {
          "type": "boolean"
        }
      },
      "required": [
        "method",
        "agent",
        "isExperiment"
      ]
    },
    "parameters": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "string"
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string"
          },
          "value": {
            "type": "number"
          }
        },
        "required": [
          "name",
          "value"
        ]
      }
    }
  },
  "required": [
    "project",
    "material",
    "process",
    "parameters",
    "properties"
  ]
}