{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://openeik.org/schemas/0.3/project/grid.schema.json",
  "title": "Grid",
  "description": "A grid line.",
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "minLength": 1
    },
    "name": {
      "type": "string",
      "minLength": 1
    },
    "revision": {
      "type": "integer",
      "minimum": 0,
      "default": 0
    },
    "start": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ]
    },
    "end": {
      "type": "array",
      "minItems": 2,
      "maxItems": 2,
      "prefixItems": [
        {
          "type": "number"
        },
        {
          "type": "number"
        }
      ]
    },
    "bottom": {
      "type": "number"
    },
    "top": {
      "type": "number"
    },
    "style": {
      "type": "object",
      "properties": {
        "bubble": {
          "type": "boolean"
        },
        "color": {
          "type": "string",
          "pattern": "^#[0-9a-fA-F]{6}$"
        },
        "lineType": {
          "type": "string",
          "enum": [
            "dashDot",
            "dash",
            "shortDash",
            "solid"
          ]
        },
        "lineWeight": {
          "type": "number",
          "minimum": 0.05,
          "maximum": 2
        },
        "label": {
          "type": "string",
          "maxLength": 80
        }
      },
      "x-eik-closed": true
    },
    "classifications": {
      "$ref": "../classifications/classifications.schema.json"
    }
  },
  "required": [
    "id",
    "name",
    "start",
    "end",
    "bottom",
    "top"
  ],
  "x-eik-closed": true
}
