{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.1/proposed/electrical/types/cable.schema.json",
  "$comment": "Proposed for OpenEik 0.2: Part XIII, electrical installations. Written by hand from the outline of Part XIII and the reference implementation's names and ranges, not generated: tools/generate-schemas.mjs keeps this folder and lists none of it in index.json. No file of OpenEik 0.1 is held to it; a validator applies it only when asked for the proposal (@openeik/tools: proposals [\"electrical\"]).",
  "title": "cable type",
  "description": "A type record of category \"cable\" (Part XIII, 6, proposed for 0.2): the common type schema, and no payload of its own in this proposal. The cable itself (its type, conductors and area) is the leg's: the electrical.cable of the element the leg feeds, else its circuit's cable.",
  "allOf": [
    {
      "$ref": "../../../types/type.schema.json"
    },
    {
      "properties": {
        "category": {
          "const": "cable"
        },
        "cableCarrier": false,
        "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
      }
    },
    {
      "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"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  ]
}
