{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://circuitgenome.com/schemas/cges-epsa-component-0.1.schema.json",
  "title": "CGES EPSA Component Extension 0.1",
  "description": "Validation schema for components[].analysis_modules.epsa payloads.",
  "type": "object",
  "properties": {
    "role": {
      "type": "string",
      "enum": [
        "power_input",
        "power_output",
        "regulation",
        "protection",
        "sensing",
        "control",
        "interface",
        "passive",
        "timing",
        "other"
      ]
    },
    "function": {
      "type": "string"
    },
    "value": {
      "type": "string"
    },
    "voltage_rating": {
      "type": "string",
      "description": "Canonical EPSA voltage rating field."
    },
    "v_rating": {
      "type": "string",
      "description": "Deprecated transitional alias for voltage_rating.",
      "deprecated": true
    },
    "current_rating": {
      "type": "string",
      "description": "Canonical EPSA current rating field."
    },
    "i_rating": {
      "type": "string",
      "description": "Deprecated transitional alias for current_rating.",
      "deprecated": true
    },
    "power_rating": {
      "type": "string",
      "description": "Canonical EPSA power rating field."
    },
    "p_rating": {
      "type": "string",
      "description": "Deprecated transitional alias for power_rating.",
      "deprecated": true
    },
    "tolerance": {
      "type": "string"
    },
    "criticality": {
      "type": "string",
      "enum": [
        "low",
        "medium",
        "high",
        "safety"
      ]
    },
    "failure_mode": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "testpoint_required": {
      "type": "boolean"
    },
    "measurement": {
      "oneOf": [
        {
          "type": "string"
        },
        {
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      ]
    },
    "notes": {
      "type": "string"
    }
  },
  "required": [
    "role",
    "value",
    "criticality"
  ],
  "anyOf": [
    {
      "required": [
        "voltage_rating"
      ]
    },
    {
      "required": [
        "v_rating"
      ]
    }
  ],
  "additionalProperties": true
}
