{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.4/frames/profile.schema.json",
  "$comment": "OpenEik 0.2: folded by tools/fold-schemas.mjs from the proposal frames, which 0.2 makes a rule (decision D5). Written by hand from the text, not generated.",
  "title": "A profile of a door's or a window's members",
  "description": "The section of a door's or a window's frame members, mullions and transoms, or sash members (Part IV, 4.3.1, rule 15): an outline as a custom section's is (Part II, 5.2, rules 8 and 9), `points`, the contour of its outside, less each of `voids`, each `{points}`, the contour of a hole through it, in mm in the members' section plane, x across the member in the wall's plane and y across the wall. Its bounding box is its members' width by their depth, within 0.1 mm.",
  "type": "object",
  "properties": {
    "points": {
      "$ref": "#/$defs/contour"
    },
    "voids": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "points": {
            "$ref": "#/$defs/contour"
          }
        },
        "required": [
          "points"
        ],
        "x-eik-closed": true
      },
      "maxItems": 1000
    }
  },
  "required": [
    "points"
  ],
  "x-eik-closed": true,
  "$defs": {
    "contour": {
      "description": "A contour (Part II, 5.2, rule 8), closed by its last side: each entry a corner `[x, y]`, a rounded corner `[x, y, r]`, or `{through: [x, y]}`, a point the arc between its neighbours passes through.",
      "type": "array",
      "items": {
        "anyOf": [
          {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "prefixItems": [
              {
                "type": "number",
                "minimum": -100000,
                "maximum": 100000
              },
              {
                "type": "number",
                "minimum": -100000,
                "maximum": 100000
              }
            ]
          },
          {
            "type": "array",
            "minItems": 3,
            "maxItems": 3,
            "prefixItems": [
              {
                "type": "number",
                "minimum": -100000,
                "maximum": 100000
              },
              {
                "type": "number",
                "minimum": -100000,
                "maximum": 100000
              },
              {
                "type": "number",
                "minimum": 0,
                "maximum": 100000
              }
            ]
          },
          {
            "type": "object",
            "properties": {
              "through": {
                "type": "array",
                "minItems": 2,
                "maxItems": 2,
                "prefixItems": [
                  {
                    "type": "number",
                    "minimum": -100000,
                    "maximum": 100000
                  },
                  {
                    "type": "number",
                    "minimum": -100000,
                    "maximum": 100000
                  }
                ]
              }
            },
            "required": [
              "through"
            ],
            "x-eik-closed": true
          }
        ]
      },
      "minItems": 3,
      "maxItems": 10000
    }
  }
}
