{
  "metadata": {
    "id": "rev-duo-omni-wheel-90mm-rev-41-1190",
    "name": "REV DUO Omni Wheel 90mm",
    "type": "custom",
    "manufacturer": "REV Robotics",
    "part_number": "REV-41-1190-PK2",
    "datasheet_url": "https://www.revrobotics.com/content/docs/REV-41-1190-DR.pdf",
    "version": "0.2.0",
    "schema_version": "1.4.0",
    "tags": [
      "rev",
      "duo",
      "omni",
      "wheel",
      "90mm",
      "ftc",
      "drivetrain"
    ],
    "description": "90mm DUO omni wheel (2-pack SKU REV-41-1190-PK2). Nylon (PA66) hub with TPU rollers. 15mm thickness; M3 clearance mounting holes with 8mm spacing (per REV specs).",
    "taxonomy": [
      "mechanical",
      "robotics.ftc",
      "robotics.frc"
    ]
  },
  "domains": [
    {
      "domain": "mechanical",
      "package_type": "wheel",
      "dimensions_mm": {
        "length": 90,
        "width": 90,
        "height": 15
      },
      "weight_g": 65.5,
      "mount_holes": [
        {
          "location": "front",
          "diam_mm": 3.2
        }
      ],
      "resources": [
        {
          "id": "hub_drive_interface",
          "name": "Hub drive interface",
          "description": "Wheel hub interface for attaching to a drivetrain hub/shaft (exact bore geometry per CAD/drawing).",
          "connector_type": "custom",
          "functions": [
            {
              "name": "mechanical_drive"
            }
          ]
        },
        {
          "id": "mounting_holes",
          "name": "Mounting holes",
          "description": "M3 clearance mounting holes (hole spacing 8mm per REV specs; full pattern per drawing/CAD).",
          "connector_type": "custom",
          "functions": [
            {
              "name": "mounting_hole"
            }
          ]
        }
      ],
      "interfaces": [
        {
          "id": "mounting_pattern",
          "name": "Mounting pattern (M3 clearance)",
          "description": "Mechanical mounting interface via the wheel's M3 clearance holes. Full hole pattern per drawing/CAD.",
          "protocol": {
            "type": "mechanical_connection",
            "role": "mounting_point"
          },
          "requires": [
            {
              "function": "mounting_hole",
              "count": 1
            }
          ],
          "max_instances": 1
        },
        {
          "id": "drive_coupling",
          "name": "Drive coupling (custom)",
          "description": "Custom mechanical coupling between wheel hub and drivetrain hub/shaft. Use CAD/drawing to match bore/fastening.",
          "protocol": {
            "type": "custom",
            "role": "custom"
          },
          "requires": [
            {
              "function": "mechanical_drive",
              "count": 1
            }
          ],
          "max_instances": 1
        }
      ]
    }
  ]
}