{
  "schema_version": "0.1.0",
  "id": "plate-120x80x6",
  "title": "Rectangular plate with four mounting holes",
  "units": {
    "length": "mm",
    "angle": "deg"
  },
  "parameters": [
    {
      "name": "length",
      "value": 120.0,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    },
    {
      "name": "width",
      "value": 80.0,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    },
    {
      "name": "thickness",
      "value": 6.0,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    },
    {
      "name": "hole_diameter",
      "value": 8.5,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    },
    {
      "name": "pattern_spacing_x",
      "value": 90.0,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    },
    {
      "name": "pattern_spacing_y",
      "value": 50.0,
      "unit": "mm",
      "min": null,
      "max": null,
      "evidence": "specified"
    }
  ],
  "datums": [
    {
      "id": "world",
      "frame": "world",
      "origin": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      },
      "evidence": "specified"
    }
  ],
  "operations": [
    {
      "type": "extrude",
      "id": "plate_body",
      "profile": {
        "type": "rect",
        "width": 120.0,
        "height": 80.0,
        "centered": true
      },
      "depth": 6.0,
      "origin": {
        "x": 0.0,
        "y": 0.0,
        "z": 0.0
      }
    },
    {
      "type": "hole",
      "id": "mount_hole",
      "diameter": 8.5,
      "depth": null,
      "origin": {
        "x": 0.0,
        "y": 0.0,
        "z": 3.0
      },
      "axis": {
        "x": 0.0,
        "y": 0.0,
        "z": 1.0
      },
      "target_feature": "plate_body"
    },
    {
      "type": "rect_pattern",
      "id": "mount_hole_pattern",
      "of_feature": "mount_hole",
      "count_x": 2,
      "count_y": 2,
      "spacing_x": 90.0,
      "spacing_y": 50.0,
      "centered": true
    }
  ],
  "requirements": [
    {
      "id": "bbox",
      "description": "Plate outer envelope 120 x 80 x 6 mm",
      "kind": "bounding_box",
      "target": {
        "x": 120.0,
        "y": 80.0,
        "z": 6.0
      },
      "tolerance": 0.05,
      "hard": true,
      "evidence": "specified"
    },
    {
      "id": "thickness",
      "description": "Plate thickness 6 mm",
      "kind": "thickness",
      "target": {
        "z": 6.0
      },
      "tolerance": 0.05,
      "hard": true,
      "evidence": "specified"
    },
    {
      "id": "holes",
      "description": "Four 8.5 mm holes",
      "kind": "hole_diameter",
      "target": {
        "diameter": 8.5,
        "count": 4.0
      },
      "tolerance": 0.05,
      "hard": true,
      "evidence": "specified"
    },
    {
      "id": "pattern",
      "description": "Centered 90 x 50 mm rectangular hole pattern",
      "kind": "hole_pattern",
      "target": {
        "count_x": 2.0,
        "count_y": 2.0,
        "spacing_x": 90.0,
        "spacing_y": 50.0
      },
      "tolerance": 0.05,
      "hard": true,
      "evidence": "specified"
    },
    {
      "id": "volume",
      "description": "Solid has positive volume",
      "kind": "volume_positive",
      "target": {},
      "tolerance": 0.0,
      "hard": true,
      "evidence": "specified"
    }
  ],
  "notes": [
    "Worked example from the OpenMotive CAD Stage A brief.",
    "Kernel-valid geometry is not proof of manufacturability or strength."
  ]
}
