{ 
    "ledmatrix": {
        "visual": "ledmatrix",
        "breadboardColumnsNeeded": 8,
        "breadboardStartRow": "h",
        "pinAllocation": {
            "type": "auto",
            "gpioPinsNeeded": [5, 5]
        },
        "assemblyStep": 0,
        "wires": [
            {"start": ["breadboard", "j", 0], "end": ["GPIO", 5], "color": "purple", "assemblyStep": 1},
            {"start": ["breadboard", "j", 1], "end": ["GPIO", 6], "color": "purple", "assemblyStep": 1},
            {"start": ["breadboard", "j", 2], "end": ["GPIO", 7], "color": "purple", "assemblyStep": 1},
            {"start": ["breadboard", "j", 3], "end": ["GPIO", 8], "color": "purple", "assemblyStep": 1},
            {"start": ["breadboard", "a", 7], "end": ["GPIO", 9], "color": "purple", "assemblyStep": 1},
            {"start": ["breadboard", "a", 0], "end": ["GPIO", 0], "color": "green", "assemblyStep": 2},
            {"start": ["breadboard", "a", 1], "end": ["GPIO", 1], "color": "green", "assemblyStep": 2},
            {"start": ["breadboard", "a", 2], "end": ["GPIO", 2], "color": "green", "assemblyStep": 2},
            {"start": ["breadboard", "a", 3], "end": ["GPIO", 3], "color": "green", "assemblyStep": 2},
            {"start": ["breadboard", "j", 4], "end": ["GPIO", 4], "color": "green", "assemblyStep": 2}
        ]
    },
    "buttonpair": {
        "visual": "buttonpair",
        "breadboardColumnsNeeded": 6,
        "breadboardStartRow": "f",
        "pinAllocation": {
            "type": "predefined",
            "pins": ["P13", "P12"]
        },
        "assemblyStep": 0,
        "wires": [
            {"start": ["breadboard", "j", 0], "end": ["GPIO", 0], "color": "yellow", "assemblyStep": 1},
            {"start": ["breadboard", "a", 2], "end": "ground", "color": "blue", "assemblyStep": 1},
            {"start": ["breadboard", "j", 3], "end": ["GPIO", 1], "color": "orange", "assemblyStep": 2},
            {"start": ["breadboard", "a", 5], "end": "ground", "color": "blue", "assemblyStep": 2}
        ]
    },
    "neopixel": {
        "visual": "neopixel",
        "breadboardColumnsNeeded": 5,
        "breadboardStartRow": "h",
        "pinAllocation": {
            "type": "factoryfunction",
            "functionName": "neopixel.create",
            "pinArgPositions": [0],
            "otherArgPositions": [1]
        },
        "assemblyStep": 0,
        "wires": [
            {"start": ["breadboard", "j", 1], "end": "ground", "color": "blue", "assemblyStep": 1},
            {"start": ["breadboard", "j", 2], "end": "threeVolt", "color": "red", "assemblyStep": 2},
            {"start": ["breadboard", "j", 3], "end": ["GPIO", 0], "color": "green", "assemblyStep": 2}
        ]
    },
    "speaker": {
        "visual": {
            "image": "/parts/speaker.svg",
            "width": 500,
            "height": 500,
            "firstPin": [180, 135],
            "pinDist": 70,
            "extraColumnOffset": 1
        },
        "breadboardColumnsNeeded": 5,
        "breadboardStartRow": "f",
        "pinAllocation": {
            "type": "auto",
            "gpioPinsNeeded": 1
        },
        "assemblyStep": 0,
        "wires": [
            {"start": ["breadboard", "j", 1], "end": ["GPIO", 0], "color": "#ff80fa", "assemblyStep": 1},
            {"start": ["breadboard", "j", 3], "end": "ground", "color": "blue", "assemblyStep": 1}
        ]
    }
}