{
  "metadata": {
    "id": "rev-41-1568-pk2",
    "name": "REV DUO 15mm Extrusion - 120mm - 90° Ends (2 Pack)",
    "type": "structural_member",
    "description": "15mm x 15mm square aluminum extrusion (120mm length) with 90° ends. Exposes 4 T-slots as the only mounting interfaces (one per face). Pack contains 2 pieces.",
    "manufacturer": "REV Robotics",
    "part_number": "REV-41-1568-PK2",
    "datasheet_url": "https://www.revrobotics.com/content/docs/15mm-Extrusion-DR.pdf",
    "tags": [
      "REV DUO",
      "15mm extrusion",
      "t-slot",
      "M3"
    ],
    "schema_version": "1.4.0",
    "version": "0.7.0",
    "taxonomy": [
      "mechanical.mounting",
      "robotics.ftc"
    ]
  },
  "domains": [
    {
      "domain": "mechanical",
      "package_type": "extrusion",
      "dimensions_mm": {
        "length": 120,
        "width": 15,
        "height": 15
      },
      "metadata": {
        "profile": "15mm x 15mm square",
        "end_angle_deg": 90,
        "pack_quantity": 2,
        "mounting_exposed": "4x T-slot faces only"
      },
      "resources": [
        {
          "id": "t_slot_face_1",
          "name": "T-slot (face 1)",
          "description": "T-slot on face 1 for captured/sliding hardware.",
          "functions": [
            {
              "name": "mechanical_mount",
              "description": "Mounting via hardware captured in the T-slot.",
              "direction": "bidirectional"
            }
          ],
          "connector_type": "custom"
        },
        {
          "id": "t_slot_face_2",
          "name": "T-slot (face 2)",
          "description": "T-slot on face 2 for captured/sliding hardware.",
          "functions": [
            {
              "name": "mechanical_mount",
              "description": "Mounting via hardware captured in the T-slot.",
              "direction": "bidirectional"
            }
          ],
          "connector_type": "custom"
        },
        {
          "id": "t_slot_face_3",
          "name": "T-slot (face 3)",
          "description": "T-slot on face 3 for captured/sliding hardware.",
          "functions": [
            {
              "name": "mechanical_mount",
              "description": "Mounting via hardware captured in the T-slot.",
              "direction": "bidirectional"
            }
          ],
          "connector_type": "custom"
        },
        {
          "id": "t_slot_face_4",
          "name": "T-slot (face 4)",
          "description": "T-slot on face 4 for captured/sliding hardware.",
          "functions": [
            {
              "name": "mechanical_mount",
              "description": "Mounting via hardware captured in the T-slot.",
              "direction": "bidirectional"
            }
          ],
          "connector_type": "custom"
        }
      ],
      "interfaces": [
        {
          "id": "mount_face_1",
          "name": "Mount (T-slot face 1)",
          "description": "Attach to T-slot on face 1 using captured/sliding hardware.",
          "protocol": {
            "type": "mechanical_connection",
            "role": "structural_support"
          },
          "requires": [
            {
              "function": "mechanical_mount",
              "count": 1
            }
          ]
        },
        {
          "id": "mount_face_2",
          "name": "Mount (T-slot face 2)",
          "description": "Attach to T-slot on face 2 using captured/sliding hardware.",
          "protocol": {
            "type": "mechanical_connection",
            "role": "structural_support"
          },
          "requires": [
            {
              "function": "mechanical_mount",
              "count": 1
            }
          ]
        },
        {
          "id": "mount_face_3",
          "name": "Mount (T-slot face 3)",
          "description": "Attach to T-slot on face 3 using captured/sliding hardware.",
          "protocol": {
            "type": "mechanical_connection",
            "role": "structural_support"
          },
          "requires": [
            {
              "function": "mechanical_mount",
              "count": 1
            }
          ]
        },
        {
          "id": "mount_face_4",
          "name": "Mount (T-slot face 4)",
          "description": "Attach to T-slot on face 4 using captured/sliding hardware.",
          "protocol": {
            "type": "mechanical_connection",
            "role": "structural_support"
          },
          "requires": [
            {
              "function": "mechanical_mount",
              "count": 1
            }
          ]
        }
      ]
    }
  ],
  "usage_notes": "Only the 4 T-slots are modeled as mounts (one per face).",
  "warnings": []
}