{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.2/types/cableCarrier.schema.json",
  "$comment": "OpenEik 0.2: folded by tools/fold-schemas.mjs from the proposal electrical, which 0.2 makes a rule (decision D5). Written by hand from the text, not generated.",
  "title": "cableCarrier type",
  "description": "A type record of category \"cableCarrier\" (Part XIII, 5: the common type schema plus the payload cableCarrier, its kind and the sizes it comes in. A conduit is round; a tray, a ladder and trunking are rectangular.",
  "allOf": [
    {
      "$ref": "type.schema.json"
    },
    {
      "properties": {
        "category": {
          "const": "cableCarrier"
        },
        "cableCarrier": {
          "type": "object",
          "properties": {
            "kind": {
              "type": "string",
              "enum": [
                "conduit",
                "tray",
                "ladder",
                "trunking"
              ]
            },
            "sizes": {
              "description": "The widths, or a conduit's diameters, in mm, that the type comes in: its catalogue's.",
              "type": "array",
              "items": {
                "type": "number",
                "exclusiveMinimum": 0
              }
            },
            "height": {
              "description": "The side height in mm of a rectangular carrier of the type.",
              "type": "number",
              "exclusiveMinimum": 0
            }
          },
          "required": [
            "kind",
            "sizes"
          ],
          "x-eik-closed": true
        },
        "component": false,
        "duct": false,
        "edgeDetail": false,
        "edgeProfile": false,
        "electrical": false,
        "fire": false,
        "footing": false,
        "framing": false,
        "furniture": false,
        "generic": false,
        "gutterProfile": false,
        "insert": false,
        "layers": false,
        "openingFamily": false,
        "parking": false,
        "pipe": false,
        "planting": false,
        "railing": false,
        "road": false,
        "room": false,
        "section": false,
        "shaft": false,
        "stair": false,
        "terminal": false,
        "voidForm": false,
        "wallAttach": false,
        "windowFamily": false
      },
      "required": [
        "cableCarrier"
      ]
    },
    {
      "dependentRequired": {
        "outline": [
          "openingFamily"
        ]
      }
    },
    {
      "not": {
        "required": [
          "openingFamily",
          "windowFamily"
        ]
      }
    },
    {
      "properties": {
        "declaredGeometry": {
          "properties": {
            "envelope": {
              "items": {
                "not": {
                  "required": [
                    "kind"
                  ],
                  "properties": {
                    "kind": {
                      "const": "swept"
                    }
                  }
                }
              }
            },
            "clearances": {
              "items": {
                "properties": {
                  "body": {
                    "not": {
                      "required": [
                        "kind"
                      ],
                      "properties": {
                        "kind": {
                          "const": "swept"
                        }
                      }
                    }
                  }
                }
              }
            },
            "parts": {
              "items": {
                "properties": {
                  "bodies": {
                    "items": {
                      "not": {
                        "required": [
                          "kind"
                        ],
                        "properties": {
                          "kind": {
                            "const": "swept"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  ]
}
