{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Implementation of ISO-11404 Record datatype. This allows grouping (sequence) of data components which can themselves be simple types, records, arrays or choices",
  "type": "object",
  "allOf": [
    {
      "$ref": "./AbstractDataComponent.json"
    },
    {
      "properties": {
        "type": {
          "const": "DataRecord"
        },
        "fields": {
          "description": "Definition of the record fields. Fields can be scalars or can themself be aggregates such as records, vectors, arrays, or choices.",
          "type": "array",
          "minItems": 1,
          "items": {
            "allOf": [
              { "$ref": "basicTypes.json#/$defs/SoftNamedProperty" },
              {
                "oneOf": [
                  { "$ref": "basicTypes.json#/$defs/AssociationAttributeGroup" },
                  { "$ref": "sweCommon.json#/$defs/AnyComponent" }
                ]
              }
            ]
          }
        }
      },
      "required": [
        "type",
        "fields"
      ]
    }
  ]
}