{
  "$comment": "harness.design .harness file format JSON Schema. © Bundled Up Limited. Licensed under the MIT Licence, see https://docs.harness.design/files/harness/LICENSE.md",
  "type": "object",
  "properties": {
    "version": {
      "type": "number",
      "const": 0.9
    },
    "kind": {
      "type": "string",
      "const": "library"
    },
    "currency": {
      "type": "string",
      "enum": [
        "$",
        "€",
        "£",
        "¥",
        "₹"
      ]
    },
    "lengthUnit": {
      "type": "string",
      "enum": [
        "mm",
        "cm",
        "m",
        "in",
        "ft",
        "yd"
      ]
    },
    "gaugeUnit": {
      "type": "string",
      "enum": [
        "AWG",
        "Metric",
        "cmil",
        "kcmil"
      ]
    },
    "readOnly": {
      "type": "boolean"
    },
    "formboard": {
      "type": "object",
      "properties": {
        "panelSize": {
          "type": "string",
          "enum": [
            "A4",
            "A3",
            "A2",
            "A1",
            "Custom"
          ]
        },
        "panelOrientation": {
          "type": "string",
          "enum": [
            "Landscape",
            "Portrait"
          ]
        },
        "panelWidth": {
          "type": "object",
          "properties": {
            "value": {
              "type": "number"
            },
            "unit": {
              "type": "string",
              "enum": [
                "mm",
                "cm",
                "m",
                "in",
                "ft",
                "yd"
              ]
            }
          },
          "required": [
            "value",
            "unit"
          ],
          "additionalProperties": false
        },
        "panelHeight": {
          "$ref": "#/properties/formboard/properties/panelWidth"
        },
        "rows": {
          "type": "integer",
          "minimum": 1
        },
        "columns": {
          "type": "integer",
          "minimum": 1
        },
        "defaultCornerRadius": {
          "$ref": "#/properties/formboard/properties/panelWidth"
        },
        "pixelLength": {
          "$ref": "#/properties/formboard/properties/panelWidth"
        }
      },
      "required": [
        "panelWidth",
        "panelHeight",
        "rows",
        "columns",
        "defaultCornerRadius",
        "pixelLength"
      ],
      "additionalProperties": false
    },
    "titleBlock": {
      "type": "object",
      "properties": {
        "company": {
          "type": "string"
        },
        "title": {
          "type": "string"
        },
        "drawingNumber": {
          "type": "string"
        },
        "date": {
          "type": "string"
        },
        "drawnBy": {
          "type": "string"
        },
        "showTeamLogo": {
          "type": "boolean"
        }
      },
      "additionalProperties": false
    },
    "exportNotes": {
      "type": "string"
    },
    "pdfExportSettings": {
      "type": "object",
      "properties": {
        "includeSchematic": {
          "type": "boolean"
        },
        "includeLayout": {
          "type": "boolean"
        },
        "schematic": {
          "type": "object",
          "properties": {
            "showParts": {
              "type": "boolean"
            },
            "showCoverings": {
              "type": "boolean"
            },
            "showAccessories": {
              "type": "boolean"
            },
            "showComponentIds": {
              "type": "boolean"
            },
            "pageSize": {
              "type": "string",
              "enum": [
                "Fit",
                "A4",
                "A3",
                "A2"
              ]
            }
          },
          "required": [
            "showParts",
            "showCoverings",
            "showComponentIds"
          ],
          "additionalProperties": false
        },
        "layout": {
          "$ref": "#/properties/pdfExportSettings/properties/schematic"
        },
        "wireThickness": {
          "type": "string",
          "enum": [
            "Regular",
            "Thick",
            "ExtraThick"
          ]
        },
        "netKeys": {
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "includeTitleBlock": {
          "type": "boolean"
        },
        "includeNotes": {
          "type": "boolean"
        },
        "includeParts": {
          "type": "boolean"
        },
        "parts": {
          "type": "object",
          "properties": {
            "columns": {
              "type": "array",
              "items": {
                "type": "string",
                "enum": [
                  "PartNumber",
                  "Manufacturer",
                  "Details",
                  "Description",
                  "Quantity",
                  "Price",
                  "TotalPrice"
                ]
              }
            },
            "pageMode": {
              "type": "string",
              "enum": [
                "Single",
                "Multiple"
              ]
            },
            "pageSize": {
              "type": "string",
              "enum": [
                "A4",
                "A3",
                "A2"
              ]
            }
          },
          "required": [
            "columns",
            "pageMode"
          ],
          "additionalProperties": false
        }
      },
      "required": [
        "includeSchematic",
        "includeLayout",
        "schematic",
        "layout",
        "wireThickness",
        "includeTitleBlock"
      ],
      "additionalProperties": false
    },
    "wires": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1
          },
          "source": {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/properties/wires/items/properties/id"
              },
              "handle": {
                "type": "string",
                "minLength": 1
              }
            },
            "required": [
              "id",
              "handle"
            ],
            "additionalProperties": false
          },
          "target": {
            "$ref": "#/properties/wires/items/properties/source"
          },
          "color": {
            "type": "string",
            "enum": [
              "Black",
              "Brown",
              "Red",
              "Orange",
              "Yellow",
              "Green",
              "Blue",
              "Violet",
              "Gray",
              "White",
              "Pink",
              "Tan",
              "Maroon",
              "Light Yellow",
              "Light Green",
              "Light Blue",
              "Light Gray",
              "Transparent",
              "Shield"
            ]
          },
          "stripeColor": {
            "$ref": "#/properties/wires/items/properties/color"
          },
          "identColors": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/color"
            }
          },
          "identLabel": {
            "type": "string"
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "layoutPoints": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "schematicPosition": {
                  "type": "object",
                  "properties": {
                    "x": {
                      "type": "number"
                    },
                    "y": {
                      "type": "number"
                    }
                  },
                  "required": [
                    "x",
                    "y"
                  ],
                  "additionalProperties": false
                },
                "layoutPosition": {
                  "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
                }
              },
              "required": [
                "id",
                "schematicPosition"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "source",
          "target",
          "color"
        ],
        "additionalProperties": false
      }
    },
    "connectors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "width": {
            "type": "number",
            "enum": [
              60,
              90,
              150,
              210,
              270,
              390
            ]
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "coveringIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/id"
            }
          },
          "partImage": {
            "type": "object",
            "properties": {
              "schematic": {
                "type": "object",
                "properties": {
                  "position": {
                    "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
                  },
                  "size": {
                    "$ref": "#/properties/connectors/items/properties/width"
                  }
                },
                "required": [
                  "position",
                  "size"
                ],
                "additionalProperties": false
              },
              "layout": {
                "$ref": "#/properties/connectors/items/properties/partImage/properties/schematic"
              }
            },
            "additionalProperties": false
          },
          "wiringTable": {
            "type": "object",
            "properties": {
              "schematic": {
                "type": "object",
                "properties": {
                  "position": {
                    "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
                  },
                  "columns": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "cavity",
                        "terminal",
                        "signal",
                        "destination",
                        "wire",
                        "color",
                        "part",
                        "gauge",
                        "contact",
                        "twistedWith",
                        "ident",
                        "net",
                        "length"
                      ]
                    }
                  },
                  "hideEmptyConnections": {
                    "type": "boolean"
                  }
                },
                "required": [
                  "position"
                ],
                "additionalProperties": false
              },
              "layout": {
                "$ref": "#/properties/connectors/items/properties/wiringTable/properties/schematic"
              }
            },
            "additionalProperties": false
          },
          "rotated": {
            "type": "boolean"
          },
          "label": {
            "type": "string"
          },
          "cavities": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "designation": {
                  "type": "string"
                },
                "contactPartId": {
                  "anyOf": [
                    {
                      "$ref": "#/properties/wires/items/properties/id"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "cavityPlugPartId": {
                  "anyOf": [
                    {
                      "$ref": "#/properties/wires/items/properties/id"
                    },
                    {
                      "type": "null"
                    }
                  ]
                },
                "signal": {
                  "type": "string"
                },
                "propagate": {
                  "type": "boolean"
                },
                "global": {
                  "type": "boolean"
                },
                "notConnected": {
                  "type": "boolean"
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "shell": {
            "$ref": "#/properties/connectors/items/properties/cavities/items"
          },
          "configurationId": {
            "$ref": "#/properties/wires/items/properties/id"
          }
        },
        "required": [
          "id",
          "cavities"
        ],
        "additionalProperties": false
      }
    },
    "terminals": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "width": {
            "$ref": "#/properties/connectors/items/properties/width"
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "coveringIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/id"
            }
          },
          "partImage": {
            "$ref": "#/properties/connectors/items/properties/partImage"
          },
          "wiringTable": {
            "$ref": "#/properties/connectors/items/properties/wiringTable"
          },
          "signal": {
            "type": "string"
          },
          "propagate": {
            "type": "boolean"
          },
          "global": {
            "type": "boolean"
          },
          "rotated": {
            "type": "boolean"
          },
          "type": {
            "type": "string",
            "enum": [
              "Ferrule",
              "Ring",
              "Spade",
              "QuickConnectMale",
              "QuickConnectFemale",
              "Loose"
            ]
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "cables": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "partImage": {
            "$ref": "#/properties/connectors/items/properties/partImage"
          },
          "rotated": {
            "type": "boolean"
          },
          "cores": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "source": {
                  "$ref": "#/properties/wires/items/properties/source"
                },
                "target": {
                  "$ref": "#/properties/wires/items/properties/source"
                },
                "color": {
                  "$ref": "#/properties/wires/items/properties/color"
                },
                "stripeColor": {
                  "$ref": "#/properties/wires/items/properties/color"
                },
                "identColors": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/wires/items/properties/color"
                  }
                },
                "identLabel": {
                  "type": "string"
                },
                "partId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "sourceLayoutPoints": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/wires/items/properties/layoutPoints/items"
                  }
                },
                "targetLayoutPoints": {
                  "type": "array",
                  "items": {
                    "$ref": "#/properties/wires/items/properties/layoutPoints/items"
                  }
                },
                "twistedWithNext": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "color"
              ],
              "additionalProperties": false
            }
          },
          "shield": {
            "type": "object",
            "properties": {
              "id": {
                "$ref": "#/properties/wires/items/properties/id"
              },
              "source": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/source"
              },
              "target": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/target"
              },
              "color": {
                "$ref": "#/properties/wires/items/properties/color"
              },
              "stripeColor": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/stripeColor"
              },
              "identColors": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/identColors"
              },
              "identLabel": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/identLabel"
              },
              "partId": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/partId"
              },
              "sourceLayoutPoints": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/sourceLayoutPoints"
              },
              "targetLayoutPoints": {
                "$ref": "#/properties/cables/items/properties/cores/items/properties/targetLayoutPoints"
              }
            },
            "required": [
              "id",
              "color"
            ],
            "additionalProperties": false
          }
        },
        "required": [
          "id",
          "schematicPosition",
          "cores"
        ],
        "additionalProperties": false
      }
    },
    "twistedWires": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "rotated": {
            "type": "boolean"
          },
          "wires": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "source": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/source"
                },
                "target": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/target"
                },
                "color": {
                  "$ref": "#/properties/wires/items/properties/color"
                },
                "stripeColor": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/stripeColor"
                },
                "identColors": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/identColors"
                },
                "identLabel": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/identLabel"
                },
                "partId": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/partId"
                },
                "sourceLayoutPoints": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/sourceLayoutPoints"
                },
                "targetLayoutPoints": {
                  "$ref": "#/properties/cables/items/properties/cores/items/properties/targetLayoutPoints"
                },
                "excludeFromBom": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "color"
              ],
              "additionalProperties": false
            }
          }
        },
        "required": [
          "id",
          "schematicPosition",
          "wires"
        ],
        "additionalProperties": false
      }
    },
    "diodes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "coveringIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/id"
            }
          },
          "partImage": {
            "$ref": "#/properties/connectors/items/properties/partImage"
          },
          "wiringTable": {
            "$ref": "#/properties/connectors/items/properties/wiringTable"
          },
          "locationId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "rotated": {
            "type": "boolean"
          },
          "anodeOnRight": {
            "type": "boolean"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "bundles": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "sourceId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "targetId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "length": {
            "$ref": "#/properties/formboard/properties/panelWidth"
          },
          "layoutPoints": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "layoutPosition": {
                  "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
                },
                "schematicPosition": {
                  "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
                }
              },
              "required": [
                "id",
                "layoutPosition"
              ],
              "additionalProperties": false
            }
          },
          "radius": {
            "$ref": "#/properties/formboard/properties/panelWidth"
          },
          "label": {
            "type": "string"
          },
          "labelColor": {
            "$ref": "#/properties/wires/items/properties/color"
          },
          "coveringIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/id"
            }
          },
          "excludeFromBom": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "sourceId",
          "targetId"
        ],
        "additionalProperties": false
      }
    },
    "mates": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "sourceId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "targetId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "targetCavityId": {
            "$ref": "#/properties/wires/items/properties/id"
          }
        },
        "required": [
          "id",
          "sourceId",
          "targetId"
        ],
        "additionalProperties": false
      }
    },
    "splices": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/diodes/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/diodes/items/properties/layoutPosition"
          },
          "partId": {
            "$ref": "#/properties/diodes/items/properties/partId"
          },
          "excludeFromBom": {
            "$ref": "#/properties/diodes/items/properties/excludeFromBom"
          },
          "coveringIds": {
            "$ref": "#/properties/diodes/items/properties/coveringIds"
          },
          "partImage": {
            "$ref": "#/properties/diodes/items/properties/partImage"
          },
          "wiringTable": {
            "$ref": "#/properties/diodes/items/properties/wiringTable"
          },
          "locationId": {
            "$ref": "#/properties/diodes/items/properties/locationId"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "resistors": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "schematicPosition": {
            "$ref": "#/properties/diodes/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/diodes/items/properties/layoutPosition"
          },
          "partId": {
            "$ref": "#/properties/diodes/items/properties/partId"
          },
          "excludeFromBom": {
            "$ref": "#/properties/diodes/items/properties/excludeFromBom"
          },
          "coveringIds": {
            "$ref": "#/properties/diodes/items/properties/coveringIds"
          },
          "partImage": {
            "$ref": "#/properties/diodes/items/properties/partImage"
          },
          "wiringTable": {
            "$ref": "#/properties/diodes/items/properties/wiringTable"
          },
          "locationId": {
            "$ref": "#/properties/diodes/items/properties/locationId"
          },
          "rotated": {
            "type": "boolean"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "branchPoints": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "bootPartId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "excludeFromBom": {
            "type": "boolean"
          },
          "coveringIds": {
            "type": "array",
            "items": {
              "$ref": "#/properties/wires/items/properties/id"
            }
          }
        },
        "required": [
          "id",
          "layoutPosition"
        ],
        "additionalProperties": false
      }
    },
    "schematicNotes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "width": {
            "$ref": "#/properties/connectors/items/properties/width"
          },
          "color": {
            "$ref": "#/properties/wires/items/properties/color"
          },
          "partId": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "text": {
            "type": "string"
          },
          "alignment": {
            "type": "string",
            "enum": [
              "Left",
              "Center",
              "Right"
            ]
          },
          "verticalAlignment": {
            "type": "string",
            "enum": [
              "Top",
              "Middle",
              "Bottom"
            ]
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          }
        },
        "required": [
          "id",
          "schematicPosition"
        ],
        "additionalProperties": false
      }
    },
    "layoutNotes": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "width": {
            "$ref": "#/properties/schematicNotes/items/properties/width"
          },
          "color": {
            "$ref": "#/properties/schematicNotes/items/properties/color"
          },
          "partId": {
            "$ref": "#/properties/schematicNotes/items/properties/partId"
          },
          "text": {
            "$ref": "#/properties/schematicNotes/items/properties/text"
          },
          "alignment": {
            "$ref": "#/properties/schematicNotes/items/properties/alignment"
          },
          "verticalAlignment": {
            "$ref": "#/properties/schematicNotes/items/properties/verticalAlignment"
          },
          "layoutPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          },
          "schematicPosition": {
            "$ref": "#/properties/wires/items/properties/layoutPoints/items/properties/schematicPosition"
          }
        },
        "required": [
          "id",
          "layoutPosition"
        ],
        "additionalProperties": false
      }
    },
    "groups": {
      "type": "array",
      "items": {
        "type": "object",
        "additionalProperties": {}
      }
    },
    "wireParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "type": "string"
          },
          "internalPartNumber": {
            "type": "string"
          },
          "manufacturer": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "image": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "const": "cloud"
                  },
                  "path": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "source",
                  "path"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "const": "file"
                  },
                  "relativePath": {
                    "type": "string",
                    "minLength": 1
                  }
                },
                "required": [
                  "source",
                  "relativePath"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "source": {
                    "type": "string",
                    "const": "url"
                  },
                  "url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "lowResUrl": {
                    "type": "string",
                    "format": "uri"
                  }
                },
                "required": [
                  "source",
                  "url"
                ],
                "additionalProperties": false
              }
            ]
          },
          "color": {
            "$ref": "#/properties/wires/items/properties/color"
          },
          "pricePerLength": {
            "type": "object",
            "properties": {
              "price": {
                "type": "number"
              },
              "unit": {
                "type": "string",
                "enum": [
                  "mm",
                  "cm",
                  "m",
                  "in",
                  "ft",
                  "yd"
                ]
              }
            },
            "required": [
              "price",
              "unit"
            ],
            "additionalProperties": false
          },
          "gauge": {
            "type": "object",
            "properties": {
              "value": {
                "type": "number"
              },
              "unit": {
                "type": "string",
                "enum": [
                  "AWG",
                  "Metric",
                  "cmil",
                  "kcmil"
                ]
              }
            },
            "required": [
              "value",
              "unit"
            ],
            "additionalProperties": false
          },
          "stripeColor": {
            "$ref": "#/properties/wires/items/properties/color"
          }
        },
        "required": [
          "id",
          "color"
        ],
        "additionalProperties": false
      }
    },
    "cableParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/wires/items/properties/color"
          },
          "pricePerLength": {
            "$ref": "#/properties/wireParts/items/properties/pricePerLength"
          },
          "cores": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "color": {
                  "$ref": "#/properties/wires/items/properties/color"
                },
                "stripeColor": {
                  "$ref": "#/properties/wires/items/properties/color"
                },
                "gauge": {
                  "$ref": "#/properties/wireParts/items/properties/gauge"
                },
                "partId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "twistedWithNext": {
                  "type": "boolean"
                }
              },
              "required": [
                "id",
                "color"
              ],
              "additionalProperties": false
            }
          },
          "shielded": {
            "type": "boolean"
          }
        },
        "required": [
          "id",
          "cores"
        ],
        "additionalProperties": false
      }
    },
    "diodeParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "voltage": {
            "type": "number"
          },
          "voltageUnit": {
            "type": "string",
            "enum": [
              "mV",
              "V",
              "kV"
            ]
          },
          "current": {
            "type": "number"
          },
          "currentUnit": {
            "type": "string",
            "enum": [
              "mA",
              "A",
              "kA"
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "spliceParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "minGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          },
          "maxGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "contactParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "minGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          },
          "maxGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          },
          "type": {
            "type": "string",
            "enum": [
              "Crimp",
              "Solder",
              "Other"
            ]
          },
          "gender": {
            "type": "string",
            "enum": [
              "Pin",
              "Socket"
            ]
          },
          "contactColor": {
            "type": "string",
            "enum": [
              "Gold",
              "Silver"
            ]
          },
          "cavitySealPartId": {
            "$ref": "#/properties/wires/items/properties/id"
          }
        },
        "required": [
          "id",
          "gender"
        ],
        "additionalProperties": false
      }
    },
    "coveringParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "pricePerLength": {
            "$ref": "#/properties/wireParts/items/properties/pricePerLength"
          },
          "type": {
            "type": "string",
            "enum": [
              "HeatShrink",
              "CorrugatedTubing",
              "SpiralWrap",
              "Tape",
              "Tubing",
              "BraidedSleeve",
              "Other"
            ]
          },
          "minDiameter": {
            "$ref": "#/properties/formboard/properties/panelWidth"
          },
          "maxDiameter": {
            "$ref": "#/properties/formboard/properties/panelWidth"
          },
          "isFixedLength": {
            "type": "boolean"
          },
          "length": {
            "$ref": "#/properties/formboard/properties/panelWidth"
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "resistorParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "resistance": {
            "type": "number"
          },
          "resistanceUnit": {
            "type": "string",
            "enum": [
              "mohm",
              "ohm",
              "kohm",
              "Mohm"
            ]
          },
          "power": {
            "type": "number"
          },
          "powerUnit": {
            "type": "string",
            "enum": [
              "mW",
              "W",
              "kW"
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "terminalParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "minGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          },
          "maxGauge": {
            "$ref": "#/properties/wireParts/items/properties/gauge"
          },
          "type": {
            "type": "string",
            "enum": [
              "Ferrule",
              "Ring",
              "Spade",
              "QuickConnectMale",
              "QuickConnectFemale",
              "Loose"
            ]
          },
          "size": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "value": {
                    "type": "number"
                  },
                  "unit": {
                    "anyOf": [
                      {
                        "type": "string",
                        "enum": [
                          "mm",
                          "cm",
                          "m",
                          "in",
                          "ft",
                          "yd"
                        ]
                      },
                      {
                        "type": "string",
                        "enum": [
                          "AWG",
                          "Metric",
                          "cmil",
                          "kcmil"
                        ]
                      }
                    ]
                  }
                },
                "required": [
                  "value",
                  "unit"
                ],
                "additionalProperties": false
              },
              {
                "type": "string"
              }
            ]
          }
        },
        "required": [
          "id",
          "type"
        ],
        "additionalProperties": false
      }
    },
    "connectorParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          },
          "gender": {
            "type": "string",
            "enum": [
              "Male",
              "Female"
            ]
          },
          "numberOfCavities": {
            "type": "integer",
            "exclusiveMinimum": 0
          },
          "hasShell": {
            "type": "boolean"
          },
          "configurations": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "id": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "name": {
                  "type": "string"
                },
                "lockPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "dustCoverPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "backshellPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "contactPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "bootPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "mountPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "cavityPlugPartId": {
                  "$ref": "#/properties/wires/items/properties/id"
                },
                "excludeFromBom": {
                  "type": "boolean"
                }
              },
              "required": [
                "id"
              ],
              "additionalProperties": false
            }
          },
          "designationStrategy": {
            "anyOf": [
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "sequential"
                  },
                  "startAt": {
                    "type": "number",
                    "enum": [
                      0,
                      1
                    ]
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "alphabetical"
                  },
                  "skippedLetters": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "case": {
                    "type": "string",
                    "enum": [
                      "uppercase",
                      "lowercase",
                      "upper-lower",
                      "lower-upper"
                    ]
                  }
                },
                "required": [
                  "type"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "grid"
                  },
                  "rows": {
                    "type": "integer",
                    "exclusiveMinimum": 0
                  },
                  "columns": {
                    "type": "integer",
                    "exclusiveMinimum": 0
                  },
                  "rowLabels": {
                    "anyOf": [
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "sequential"
                          },
                          "startAt": {
                            "$ref": "#/properties/connectorParts/items/properties/designationStrategy/anyOf/0/properties/startAt"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "additionalProperties": false
                      },
                      {
                        "type": "object",
                        "properties": {
                          "type": {
                            "type": "string",
                            "const": "alphabetical"
                          },
                          "skippedLetters": {
                            "type": "array",
                            "items": {
                              "type": "string"
                            }
                          },
                          "case": {
                            "$ref": "#/properties/connectorParts/items/properties/designationStrategy/anyOf/1/properties/case"
                          }
                        },
                        "required": [
                          "type"
                        ],
                        "additionalProperties": false
                      }
                    ]
                  },
                  "columnLabels": {
                    "$ref": "#/properties/connectorParts/items/properties/designationStrategy/anyOf/2/properties/rowLabels"
                  }
                },
                "required": [
                  "type",
                  "rows",
                  "columns",
                  "rowLabels",
                  "columnLabels"
                ],
                "additionalProperties": false
              },
              {
                "type": "object",
                "properties": {
                  "type": {
                    "type": "string",
                    "const": "custom"
                  },
                  "labels": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                },
                "required": [
                  "type",
                  "labels"
                ],
                "additionalProperties": false
              }
            ]
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "groupParts": {
      "type": "array",
      "items": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/properties/wires/items/properties/id"
          },
          "partNumber": {
            "$ref": "#/properties/wireParts/items/properties/partNumber"
          },
          "internalPartNumber": {
            "$ref": "#/properties/wireParts/items/properties/internalPartNumber"
          },
          "manufacturer": {
            "$ref": "#/properties/wireParts/items/properties/manufacturer"
          },
          "description": {
            "$ref": "#/properties/wireParts/items/properties/description"
          },
          "url": {
            "$ref": "#/properties/wireParts/items/properties/url"
          },
          "image": {
            "$ref": "#/properties/wireParts/items/properties/image"
          },
          "color": {
            "$ref": "#/properties/cableParts/items/properties/color"
          },
          "price": {
            "type": "number"
          }
        },
        "required": [
          "id"
        ],
        "additionalProperties": false
      }
    },
    "lockParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "dustCoverParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "bootParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "backshellParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "cavitySealParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "cavityPlugParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "mountParts": {
      "type": "array",
      "items": {
        "$ref": "#/properties/groupParts/items"
      }
    },
    "$schema": {
      "type": "string",
      "description": "URL of this schema. Maintained by the app."
    },
    "$docs": {
      "type": "string",
      "description": "URL of the editing guide. Maintained by the app."
    }
  },
  "required": [
    "version"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://docs.harness.design/files/harness/schema/v0.9.json",
  "title": "harness.design saved document (v0.9)",
  "description": "The .harness file format, version 0.9. Editing guide: https://docs.harness.design/files/harness/editing-guide.md"
}
