{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.2/types/pipe.schema.json",
  "title": "pipe type",
  "description": "A type record of category \"pipe\": the common type schema plus the rules for this category.",
  "allOf": [
    {
      "$ref": "type.schema.json"
    },
    {
      "properties": {
        "category": {
          "const": "pipe"
        },
        "acoustic": false,
        "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,
        "planting": false,
        "railing": false,
        "road": false,
        "room": false,
        "section": false,
        "shaft": false,
        "stair": false,
        "terminal": false,
        "thermal": 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"
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  ]
}
