{
  "$comment": "Generated by tools/generate-schemas.mjs from the reference implementation at de6f0d04. Maps each kind of file in an OpenEik folder to its schema.",
  "version": "0.1.0-draft",
  "base": "https://openeik.org/schemas/0.1/",
  "format": "openeik/0.1-draft",
  "disciplines": [
    "architecture",
    "structure",
    "systems",
    "site"
  ],
  "categories": [
    "slab",
    "foundation",
    "wall",
    "ceiling",
    "roof",
    "beam",
    "column",
    "door",
    "window",
    "slabEdge",
    "rebar",
    "mesh",
    "component",
    "gutter",
    "room",
    "roomSeparator",
    "shaft",
    "stair",
    "railing",
    "pipe",
    "duct",
    "terminal",
    "terrain",
    "grading",
    "propertyLine",
    "furniture",
    "planting",
    "road",
    "parking",
    "fire",
    "generic"
  ],
  "categoryDiscipline": {
    "slab": "architecture",
    "foundation": "structure",
    "wall": "architecture",
    "ceiling": "architecture",
    "roof": "architecture",
    "beam": "structure",
    "column": "structure",
    "door": "architecture",
    "window": "architecture",
    "slabEdge": "structure",
    "rebar": "structure",
    "mesh": "structure",
    "component": "architecture",
    "gutter": "architecture",
    "room": "architecture",
    "roomSeparator": "architecture",
    "shaft": "architecture",
    "stair": "architecture",
    "railing": "architecture",
    "pipe": "systems",
    "duct": "systems",
    "terminal": "systems",
    "terrain": "site",
    "grading": "site",
    "propertyLine": "site",
    "furniture": "architecture",
    "planting": "architecture",
    "road": "architecture",
    "parking": "architecture",
    "fire": "architecture",
    "generic": "architecture"
  },
  "files": [
    {
      "pattern": "eik.json",
      "schema": "eik.schema.json"
    },
    {
      "pattern": "AGENTS.md",
      "schema": null,
      "note": "Text: the conventions for agents. Not a record."
    },
    {
      "pattern": "project/project.json",
      "schema": "project/project.schema.json"
    },
    {
      "pattern": "project/levels.json",
      "schema": "project/levels.schema.json"
    },
    {
      "pattern": "project/order.json",
      "schema": "project/order.schema.json"
    },
    {
      "pattern": "project/grids/<id>.json",
      "list": "grids",
      "schema": "project/grid.schema.json"
    },
    {
      "pattern": "project/scope-boxes/<id>.json",
      "list": "scopeBoxes",
      "schema": "project/scope-box.schema.json"
    },
    {
      "pattern": "project/materials/<id>.json",
      "list": "materials",
      "schema": "project/material.schema.json"
    },
    {
      "pattern": "project/dimension-styles/<id>.json",
      "list": "dimensionStyles",
      "schema": "project/dimension-style.schema.json"
    },
    {
      "pattern": "project/detail-families/<id>.json",
      "list": "detailFamilies",
      "schema": "project/detail-family.schema.json"
    },
    {
      "pattern": "project/title-blocks/<id>.json",
      "list": "titleBlocks",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "project/images/<id>.json",
      "list": "images",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "drawings/sheets/<id>.json",
      "list": "sheets",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "documents/reports/<id>.json",
      "list": "reports",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "documents/renders/<id>.json",
      "list": "renders",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "documents/deviations/<id>.json",
      "list": "deviations",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "documents/area-adjustments/<id>.json",
      "list": "areaAdjustments",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "documents/references/<id>.json",
      "list": "references",
      "schema": "application-record.schema.json"
    },
    {
      "pattern": "fabrication/pieces/<id>.json",
      "list": "pieces",
      "schema": "fabrication/piece.schema.json"
    },
    {
      "pattern": "fabrication/joints/<id>.json",
      "list": "joints",
      "schema": "fabrication/joint.schema.json"
    },
    {
      "pattern": "project/originals/<id>.json",
      "list": "originals",
      "schema": "project/original.schema.json"
    },
    {
      "pattern": "project/copies/<id>.json",
      "list": "copies",
      "schema": "project/copy.schema.json"
    },
    {
      "pattern": "types/<discipline>/<category>/<id>.json",
      "list": "types",
      "schema": "types/<category>.schema.json"
    },
    {
      "pattern": "<discipline>/<level>/<category>/<id>.json",
      "list": "elements",
      "schema": "elements/<category>.schema.json"
    },
    {
      "pattern": "drawings/views/<kind>/<id>/view.json",
      "list": "views",
      "schema": "drawings/view-record.schema.json"
    },
    {
      "pattern": "drawings/views/<kind>/<id>/details/<index>.json",
      "list": "views",
      "schema": "drawings/view-details.schema.json"
    }
  ],
  "applications": [
    {
      "format": "openeik-result/0.1",
      "earlier": [
        "openeik-result/0.1-proposal"
      ],
      "pattern": "<application>/<model>/results/<run>/manifest.json",
      "schema": "applications/result-manifest.schema.json"
    },
    {
      "format": "openeik-proposal/0.1",
      "earlier": [
        "openeik-proposal/0.1-proposal"
      ],
      "pattern": "<application>/<model>/proposals/<id>.json",
      "schema": "applications/proposal.schema.json"
    }
  ],
  "references": {
    "element": [
      {
        "path": [
          "typeId"
        ],
        "to": "type"
      },
      {
        "path": [
          "levelId"
        ],
        "to": "level"
      },
      {
        "path": [
          "top",
          "constraint",
          "levelId"
        ],
        "to": "level"
      },
      {
        "path": [
          "recesses",
          "*",
          "typeId"
        ],
        "to": "type"
      },
      {
        "path": [
          "edges",
          "*",
          "typeId"
        ],
        "to": "type"
      },
      {
        "path": [
          "roof",
          "windows",
          "*",
          "typeId"
        ],
        "to": "type"
      },
      {
        "path": [
          "hostId"
        ],
        "to": "element"
      },
      {
        "path": [
          "topRoofId"
        ],
        "to": "element"
      },
      {
        "path": [
          "topCeilingId"
        ],
        "to": "element"
      },
      {
        "path": [
          "roofCutId"
        ],
        "to": "element"
      },
      {
        "path": [
          "top",
          "attach",
          "hostId"
        ],
        "to": "element"
      },
      {
        "path": [
          "top",
          "cutRoofId"
        ],
        "to": "element"
      },
      {
        "path": [
          "base",
          "attach",
          "hostId"
        ],
        "to": "element"
      },
      {
        "path": [
          "edgeAttachments",
          "*",
          "hostId"
        ],
        "to": "element"
      },
      {
        "path": [
          "trussLayout",
          "bearingWallIds",
          "*"
        ],
        "to": "element"
      },
      {
        "path": [
          "mep",
          "joins",
          "start",
          "terminalId"
        ],
        "to": "element"
      },
      {
        "path": [
          "mep",
          "joins",
          "end",
          "terminalId"
        ],
        "to": "element"
      },
      {
        "path": [
          "joins",
          "*",
          "to"
        ],
        "to": "element"
      },
      {
        "path": [
          "framingTop",
          "floorId"
        ],
        "to": "element"
      }
    ],
    "view": [
      {
        "path": [
          "levelId"
        ],
        "to": "level"
      },
      {
        "path": [
          "scopeBoxId"
        ],
        "to": "scopeBox"
      },
      {
        "path": [
          "parentViewId"
        ],
        "to": "view"
      },
      {
        "path": [
          "dependentOn"
        ],
        "to": "view"
      },
      {
        "path": [
          "datums",
          "levelIds",
          "*"
        ],
        "to": "level"
      },
      {
        "path": [
          "datums",
          "gridIds",
          "*"
        ],
        "to": "grid"
      }
    ]
  },
  "singleFile": "model.schema.json"
}
