canvas:
  width: 1200
  height: 700
  background: "#2e2e2e"

styles:
  pcm-body:
    fill: "#4a4a4a"
    stroke: "#ffffff"
    stroke_width: 2
  pin-row:
    fill: "#333333"
    stroke: "#ffffff"
    stroke_width: 1
  # 80-pin color palette (Ford/Jeep 60+20 style)
  power-red:
    fill: "#ff0000"
    stroke: "#ffffff"
    stroke_width: 1
  ground-black:
    fill: "#000000"
    stroke: "#ffffff"
    stroke_width: 1
  can-yellow:
    fill: "#ffff00"
    stroke: "#000000"
    stroke_width: 1
  can-orange:
    fill: "#ffa600"
    stroke: "#000000"
    stroke_width: 1
  sensor-green:
    fill: "#00ff00"
    stroke: "#000000"
    stroke_width: 1
  sensor-blue:
    fill: "#0000ff"
    stroke: "#ffffff"
    stroke_width: 1
  injector-purple:
    fill: "#800080"
    stroke: "#ffffff"
    stroke_width: 1
  ignition-cyan:
    fill: "#00ffff"
    stroke: "#000000"
    stroke_width: 1
  comm-pink:
    fill: "#ffc0cb"
    stroke: "#000000"
    stroke_width: 1
  misc-white:
    fill: "#ffffff"
    stroke: "#000000"
    stroke_width: 1

shapes:
  # PCM outline
  - type: rectangle
    position: [50, 50]
    size: [1100, 600]
    style: pcm-body
    rx: 10
    ry: 10

  # ---------- Connector A (60-pin) ----------
  # 6 rows × 10 pins each
  # Row 1 (A1-A10)
  - type: circle
    center: [100, 100]
    radius: 40
    style: power-red
  - type: text
    content: "A1\n+12V IGN"
    position: [100, 160]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 100]
    radius: 40
    style: ground-black
  - type: text
    content: "A2\nGND"
    position: [200, 160]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 100]
    radius: 40
    style: can-yellow
  - type: text
    content: "A3\nCAN-H"
    position: [300, 160]
    fill: "#ffff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 100]
    radius: 40
    style: can-orange
  - type: text
    content: "A4\nCAN-L"
    position: [400, 160]
    fill: "#ffa600"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [500, 100]
    radius: 40
    style: sensor-green
  - type: text
    content: "A5\nMAP SIG"
    position: [500, 160]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 100]
    radius: 40
    style: sensor-blue
  - type: text
    content: "A6\nTPS SIG"
    position: [600, 160]
    fill: "#0000ff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [700, 100]
    radius: 40
    style: injector-purple
  - type: text
    content: "A7\nINJ1"
    position: [580, 160]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [700, 100]
    radius: 40
    style: injector-purple
  - type: text
    content: "A8\nINJ2"
    position: [660, 160]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [800, 100]
    radius: 40
    style: injector-purple
  - type: text
    content: "A9\nINJ3"
    position: [800, 160]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [900, 100]
    radius: 40
    style: injector-purple
  - type: text
    content: "A10\nINJ4"
    position: [900, 160]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  # Row 2 (A11-A20)
  - type: circle
    center: [100, 200]
    radius: 40
    style: injector-purple
  - type: text
    content: "A11\nINJ5"
    position: [100, 300]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 200]
    radius: 40
    style: injector-purple
  - type: text
    content: "A12\nINJ6"
    position: [200, 300]
    fill: "#800080"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A13\nCOIL1"
    position: [300, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A14\nCOIL2"
    position: [400, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [420, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A15\nCOIL3"
    position: [420, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A16\nCOIL4"
    position: [600, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [580, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A17\nCOIL5"
    position: [580, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [660, 200]
    radius: 40
    style: ignition-cyan
  - type: text
    content: "A18\nCOIL6"
    position: [660, 300]
    fill: "#00ffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [740, 200]
    radius: 40
    style: sensor-green
  - type: text
    content: "A19\nO2S1"
    position: [740, 300]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [820, 200]
    radius: 40
    style: sensor-green
  - type: text
    content: "A20\nO2S2"
    position: [820, 300]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  # Row 3 (A21-A30)
  - type: circle
    center: [100, 300]
    radius: 40
    style: sensor-green
  - type: text
    content: "A21\nO2S3"
    position: [100, 360]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 300]
    radius: 40
    style: sensor-green
  - type: text
    content: "A22\nO2S4"
    position: [200, 360]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 300]
    radius: 40
    style: sensor-blue
  - type: text
    content: "A23\nKNOCK"
    position: [300, 360]
    fill: "#0000ff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 300]
    radius: 40
    style: sensor-blue
  - type: text
    content: "A24\nCRANK"
    position: [400, 360]
    fill: "#0000ff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [420, 300]
    radius: 40
    style: sensor-blue
  - type: text
    content: "A25\nCAM"
    position: [420, 360]
    fill: "#0000ff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 300]
    radius: 40
    style: power-red
  - type: text
    content: "A26\n+5V REF"
    position: [600, 360]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [580, 300]
    radius: 40
    style: sensor-green
  - type: text
    content: "A27\nIAT SIG"
    position: [580, 360]
    fill: "#00ff00"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [660, 300]
    radius: 40
    style: sensor-blue
  - type: text
    content: "A28\nBARO"
    position: [660, 360]
    fill: "#0000ff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [740, 300]
    radius: 40
    style: misc-white
  - type: text
    content: "A29\nVSS RTN"
    position: [740, 360]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [820, 300]
    radius: 40
    style: ground-black
  - type: text
    content: "A30\nGND"
    position: [820, 360]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  # Row 4 (A31-A40)
  - type: circle
    center: [100, 400]
    radius: 40
    style: power-red
  - type: text
    content: "A31\n+12V B+"
    position: [100, 460]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 400]
    radius: 40
    style: ground-black
  - type: text
    content: "A32\nGND"
    position: [200, 460]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 400]
    radius: 40
    style: power-red
  - type: text
    content: "A33\n+12V B+"
    position: [300, 460]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 400]
    radius: 40
    style: ground-black
  - type: text
    content: "A34\nGND"
    position: [400, 460]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [420, 400]
    radius: 40
    style: power-red
  - type: text
    content: "A35\n+12V B+"
    position: [420, 460]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 400]
    radius: 40
    style: ground-black
  - type: text
    content: "A36\nGND"
    position: [600, 460]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [580, 400]
    radius: 40
    style: power-red
  - type: text
    content: "A37\n+12V B+"
    position: [580, 460]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [660, 400]
    radius: 40
    style: ground-black
  - type: text
    content: "A38\nGND"
    position: [660, 460]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [740, 400]
    radius: 40
    style: power-red
  - type: text
    content: "A39\n+12V B+"
    position: [740, 460]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [820, 400]
    radius: 40
    style: ground-black
  - type: text
    content: "A40\nGND"
    position: [820, 460]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  # Row 5 (A41-A50)
  - type: circle
    center: [100, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A41\n+12V B+"
    position: [100, 560]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A42\nGND"
    position: [200, 560]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A43\n+12V B+"
    position: [300, 560]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A44\nGND"
    position: [400, 560]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [420, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A35\n+12V B+"
    position: [420, 560]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A46\nGND"
    position: [600, 560]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [580, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A47\n+12V B+"
    position: [580, 560]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [660, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A48\nGND"
    position: [660, 560]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [740, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A49\n+12V B+"
    position: [740, 560]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [820, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A50\nGND"
    position: [820, 560]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  # Row 6 (A51-A60)
  - type: circle
    center: [100, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A51\n+12V B+"
    position: [100, 660]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [200, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A52\nGND"
    position: [200, 660]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [300, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A53\n+12V B+"
    position: [300, 660]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [400, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A54\nGND"
    position: [400, 660]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [420, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A55\n+12V B+"
    position: [420, 660]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [600, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A56\nGND"
    position: [600, 660]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [580, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A57\n+12V B+"
    position: [580, 660]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [660, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A58\nGND"
    position: [660, 660]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [740, 600]
    radius: 40
    style: power-red
  - type: text
    content: "A59\n+12V B+"
    position: [740, 660]
    fill: "#ff0000"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"

  - type: circle
    center: [820, 600]
    radius: 40
    style: ground-black
  - type: text
    content: "A60\nGND"
    position: [820, 660]
    fill: "#ffffff"
    font_size: 14
    font_weight: "bold"
    text_anchor: "middle"
