{
  "opd": "benikigai/ec-1",
  "commit": 1,
  "opd_version": "0.4.0",
  "layer": null,
  "question": null,
  "data": {
    "opd_version": "0.4.0",
    "extensions": [
      {
        "id": "battery",
        "version": "0.1.0"
      },
      {
        "id": "controller",
        "version": "0.1.0"
      }
    ],
    "card": {
      "product": "EC-1 Wireless Controller",
      "maker": "Example Devices (fictional)",
      "maker_endorsed": false,
      "synthetic": true,
      "category": [
        "game-controller",
        "consumer-electronics",
        "battery-powered",
        "wireless"
      ],
      "revision_examined": "EC-1 rev B, SKU EC1-BLK (fictional)",
      "units_examined": 30,
      "license": "CC-BY-4.0",
      "base_opd": null,
      "base_relation": null,
      "trust_level": "draft",
      "visibility": "public",
      "metrics": {
        "observed_share": {
          "value": 0.367,
          "badge": "self-reported"
        },
        "bom_coverage_by_cost": {
          "value": 0.966,
          "badge": "self-reported"
        },
        "station_evidence_share": {
          "value": 0.455,
          "badge": "self-reported"
        },
        "card_completeness": {
          "value": 1,
          "badge": "self-reported"
        },
        "rebuild_check": {
          "value": true,
          "badge": "self-reported"
        },
        "reproduction_agreement": {
          "value": null,
          "badge": "self-reported"
        }
      }
    },
    "sources": [
      {
        "id": "src:ct-run-1",
        "kind": "ct",
        "ref": "raw/scan-logs/ct-run-1.yaml",
        "sha256": "144c9053a55bb8ede5b8961799d86d9eca291bc2d3be66a4b073386765d3f413"
      },
      {
        "id": "src:teardown-log",
        "kind": "teardown",
        "ref": "raw/teardown-log.csv",
        "sha256": "d7c953e05077eaef3e2679cebd98b51241bed87ca330c08d38b883ba7dbca9d4"
      },
      {
        "id": "src:caliper-run-1",
        "kind": "caliper",
        "ref": "raw/measurements.csv",
        "sha256": "4e485578c0e79cf7911b550abc8fac035d7e0ce53794b10bef0166950f5e2cdd"
      },
      {
        "id": "src:cmm-run-1",
        "kind": "cmm",
        "ref": "raw/measurements.csv",
        "sha256": "4e485578c0e79cf7911b550abc8fac035d7e0ce53794b10bef0166950f5e2cdd"
      },
      {
        "id": "src:xrf-shells",
        "kind": "xrf",
        "ref": "raw/xrf-shells.csv",
        "sha256": "aefe247c1ef4cfe030e8d4359d6f2b8700d0cbf34b45c4a026c8201b339c9d94"
      },
      {
        "id": "src:markings",
        "kind": "marking",
        "ref": "raw/markings.csv",
        "sha256": "46ed21205a7f44d2440bfeffecd70d58fb750a24d4afabb3a72c0efe0e5e07b6"
      },
      {
        "id": "src:photos",
        "kind": "photo",
        "ref": "media/renders/"
      },
      {
        "id": "src:fcc-filing",
        "kind": "filing",
        "ref": "compliance/marks.yaml",
        "sha256": "da0069bb050752c8c7d64a06ed67e3e814609dc9061a3a6531da3f76e2486390"
      },
      {
        "id": "src:repair-guide",
        "kind": "repair_guide",
        "ref": "public repair guides for EC-1 stick replacement (fictional)"
      },
      {
        "id": "src:reviews",
        "kind": "review",
        "ref": "raw/review-sample.csv",
        "sha256": "6d758ebf78e695d235eb7fb9e6832fd184626169cefe97b0d3da73b83bf5a20f"
      },
      {
        "id": "src:eol-sample",
        "kind": "teardown",
        "ref": "raw/eol-sample.csv",
        "sha256": "7192c8a9896aab318b77c2832406f813735e52f7b6effa076d9fce542db5fd9c"
      }
    ],
    "parts": [
      {
        "id": "part:top-shell",
        "name": "Top shell",
        "material": {
          "value": "PC/ABS, charcoal, light texture",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:xrf-shells",
            "src:markings"
          ],
          "note": "XRF matches PC/ABS; >PC+ABS< moulded inside"
        },
        "process": {
          "value": "injection-moulded, 2-cavity tool",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log",
            "src:photos"
          ],
          "note": "two gate vestiges and cavity number 1 or 2 on the inside"
        },
        "mass_g": {
          "value": 16.6,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 16.94 g"
        },
        "geometry": {
          "step": "parts/top-shell.step",
          "usd_prim": "/Product/TopShell",
          "fidelity": "reduced"
        },
        "features": [
          {
            "id": "feat:top-length",
            "name": "Overall length",
            "spread": {
              "mean": 119.9177,
              "sd": 0.0294,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          },
          {
            "id": "feat:top-width",
            "name": "Overall width",
            "spread": {
              "mean": 55.951,
              "sd": 0.0263,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          },
          {
            "id": "feat:stick-hole-dia",
            "name": "Stick hole diameter",
            "spread": {
              "mean": 21.0189,
              "sd": 0.0154,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.001,
              "evidence": [
                "src:cmm-run-1"
              ]
            }
          },
          {
            "id": "feat:button-hole-dia",
            "name": "Face button hole diameter (A)",
            "spread": {
              "mean": 8.213,
              "sd": 0.0134,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.001,
              "evidence": [
                "src:cmm-run-1"
              ]
            }
          },
          {
            "id": "feat:shoulder-gap",
            "name": "Gap at shoulder buttons, closed unit",
            "spread": {
              "mean": 0.2147,
              "sd": 0.0493,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          },
          {
            "id": "feat:boss-pilot-dia",
            "name": "Screw boss pilot diameter",
            "spread": {
              "mean": 1.7102,
              "sd": 0.0109,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.001,
              "evidence": [
                "src:cmm-run-1"
              ]
            }
          }
        ],
        "markings": [
          {
            "value": ">PC+ABS<",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          },
          {
            "value": "cavity 1 or 2",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          }
        ]
      },
      {
        "id": "part:bottom-shell",
        "name": "Bottom shell",
        "material": {
          "value": "PC/ABS, charcoal",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:xrf-shells",
            "src:markings"
          ]
        },
        "process": {
          "value": "injection-moulded, 2-cavity tool",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "mass_g": {
          "value": 18.1,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 18.06 g"
        },
        "geometry": {
          "step": "parts/bottom-shell.step",
          "usd_prim": "/Product/BottomShell",
          "fidelity": "reduced"
        },
        "features": [
          {
            "id": "feat:lip-height",
            "name": "Wall height at parting line",
            "spread": {
              "mean": 12.014,
              "sd": 0.0305,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          },
          {
            "id": "feat:parting-gap",
            "name": "Parting-line gap, closed unit",
            "spread": {
              "mean": 0.0993,
              "sd": 0.0289,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          }
        ],
        "markings": [
          {
            "value": ">PC+ABS<",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          }
        ]
      },
      {
        "id": "part:button-cap",
        "name": "Face button cap",
        "material": {
          "value": "ABS, off-white, pad-printed legend",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ],
          "note": "legend wears on high-use units"
        },
        "process": {
          "value": "injection-moulded, 8-cavity family tool",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "mass_g": {
          "value": 0.36,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 0.34 g"
        },
        "geometry": {
          "step": "parts/button-cap.step",
          "usd_prim": "/Product/ButtonCap_1",
          "fidelity": "reduced"
        },
        "features": [
          {
            "id": "feat:cap-od",
            "name": "Cap outside diameter",
            "spread": {
              "mean": 7.5777,
              "sd": 0.0097,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          }
        ]
      },
      {
        "id": "part:shoulder-button",
        "name": "Shoulder button",
        "material": {
          "value": "PC, charcoal",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "injection-moulded",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "mass_g": {
          "value": 0.76,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 0.75 g"
        },
        "geometry": {
          "step": "parts/shoulder-button.step",
          "usd_prim": "/Product/ShoulderButton_L",
          "fidelity": "reduced"
        }
      },
      {
        "id": "part:dome-sheet",
        "name": "Silicone dome sheet",
        "material": {
          "value": "silicone rubber, 50 Shore A",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "compression-moulded",
          "source": "inferred",
          "confidence": "medium"
        },
        "mass_g": {
          "value": 0.66,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 0.64 g"
        },
        "geometry": {
          "step": "parts/dome-sheet.step",
          "usd_prim": "/Product/DomeSheet",
          "fidelity": "reduced"
        }
      },
      {
        "id": "part:stick-module",
        "name": "Analog stick module",
        "material": {
          "value": "mixed: POM shaft, ABS cap, carbon-track potentiometers",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log",
            "src:ct-run-1"
          ]
        },
        "process": {
          "value": "purchased-assembly",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 6.4,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        },
        "geometry": {
          "step": "parts/stick-module.step",
          "usd_prim": "/Product/StickModule",
          "fidelity": "envelope"
        },
        "features": [
          {
            "id": "feat:stick-centre-offset",
            "name": "Stick centre offset at rest, uncalibrated",
            "spread": {
              "mean": 1.7033,
              "sd": 1.0347,
              "n": 30,
              "unit": "% of full scale",
              "instrument_resolution": 0.1,
              "evidence": [
                "src:eol-sample"
              ]
            }
          }
        ],
        "markings": [
          {
            "value": "EXS-10K (fictional)",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          }
        ]
      },
      {
        "id": "part:main-pcba",
        "name": "Main PCBA",
        "material": {
          "value": "FR-4, 4 layers, 1.0 mm, ENIG",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:ct-run-1",
            "src:teardown-log"
          ],
          "note": "layer count from CT; finish from colour"
        },
        "process": {
          "value": "smt-assembled, both sides reflowed at the EMS",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "mass_g": {
          "value": 9.6,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        },
        "geometry": {
          "step": "parts/main-pcba.step",
          "usd_prim": "/Product/MainPCBA",
          "fidelity": "envelope"
        },
        "features": [
          {
            "id": "feat:board-thickness",
            "name": "Board thickness",
            "spread": {
              "mean": 1.006,
              "sd": 0.0159,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          }
        ]
      },
      {
        "id": "part:battery",
        "name": "Li-ion pouch cell, 600 mAh",
        "material": {
          "value": "lithium-ion polymer",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:markings"
          ],
          "note": "read from the cell label"
        },
        "process": {
          "value": "purchased-assembly with protection board",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "mass_g": {
          "value": 12.4,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        },
        "geometry": {
          "step": "parts/battery.step",
          "usd_prim": "/Product/Battery",
          "fidelity": "envelope"
        },
        "features": [
          {
            "id": "feat:cell-thickness",
            "name": "Cell thickness at 50% charge",
            "spread": {
              "mean": 5.9163,
              "sd": 0.0576,
              "n": 30,
              "unit": "mm",
              "instrument_resolution": 0.01,
              "evidence": [
                "src:caliper-run-1"
              ]
            }
          }
        ],
        "markings": [
          {
            "value": "3.7 V 600 mAh 2.22 Wh",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          }
        ]
      },
      {
        "id": "part:haptic-lra",
        "name": "Haptic LRA, 10 mm",
        "material": {
          "value": "mixed",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "purchased-assembly",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 1.6,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        },
        "geometry": {
          "step": "parts/haptic-lra.step",
          "usd_prim": "/Product/HapticLRA",
          "fidelity": "envelope"
        }
      },
      {
        "id": "part:screw-m2x6",
        "name": "Screw, M2 x 6, pan head, self-tapping for plastic",
        "material": {
          "value": "steel, black zinc",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "cold-headed, thread-rolled",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 0.24,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 0.25 g"
        },
        "geometry": {
          "step": "parts/screw-m2x6.step",
          "usd_prim": "/Product/Screw_1",
          "fidelity": "reduced"
        }
      },
      {
        "id": "part:light-pipe",
        "name": "LED light pipe",
        "material": {
          "value": "PC, clear",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "injection-moulded",
          "source": "inferred",
          "confidence": "medium"
        },
        "mass_g": {
          "value": 0.05,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units; CAD volume times nominal density gives 0.03 g"
        },
        "geometry": {
          "step": "parts/light-pipe.step",
          "usd_prim": "/Product/LightPipe",
          "fidelity": "reduced"
        }
      },
      {
        "id": "part:rating-label",
        "name": "Rating label",
        "material": {
          "value": "PET film, printed",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "die-cut, purchased",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 0.05,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        },
        "geometry": {
          "step": "parts/rating-label.step",
          "usd_prim": "/Product/RatingLabel",
          "fidelity": "reduced"
        }
      },
      {
        "id": "part:soc",
        "name": "Bluetooth LE SoC, 7 x 7 mm QFN",
        "material": {
          "value": "silicon die in QFN-48",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:markings"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        },
        "markings": [
          {
            "value": "EXAMPLE BLE52 (fictional part number)",
            "source": "observed",
            "confidence": "high",
            "evidence": [
              "src:markings"
            ]
          }
        ]
      },
      {
        "id": "part:imu",
        "name": "6-axis IMU, 3 x 3 mm LGA",
        "material": {
          "value": "MEMS in LGA-14",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:markings"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:pmic",
        "name": "Charger and power IC, 4 x 4 mm QFN",
        "material": {
          "value": "silicon die in QFN-24",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:markings"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:usb-c",
        "name": "USB-C receptacle, mid-mount",
        "material": {
          "value": "LCP body, gold-plated contacts",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:antenna",
        "name": "2.4 GHz chip antenna",
        "material": {
          "value": "ceramic",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:ct-run-1"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:crystal",
        "name": "32 MHz crystal",
        "material": {
          "value": "quartz in ceramic package",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:markings"
          ]
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:passives",
        "name": "Passives kit, about 120 parts",
        "material": {
          "value": "MLCC, thick-film resistors, ferrites",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:ct-run-1"
          ],
          "note": "count from CT, values not identified"
        },
        "process": {
          "value": "purchased-component",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:pcb",
        "name": "Bare board, 4 layers",
        "material": {
          "value": "FR-4, Tg 150",
          "source": "inferred",
          "confidence": "medium"
        },
        "process": {
          "value": "fabricated board",
          "source": "inferred",
          "confidence": "high"
        }
      },
      {
        "id": "part:retail-box",
        "name": "Retail box",
        "material": {
          "value": "SBS board, 350 gsm, matte laminate",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "printed, die-cut, glued",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 48,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        }
      },
      {
        "id": "part:pack-tray",
        "name": "Pulp tray",
        "material": {
          "value": "moulded pulp",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "wet-pressed pulp",
          "source": "inferred",
          "confidence": "medium"
        },
        "mass_g": {
          "value": 14,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        }
      },
      {
        "id": "part:usb-cable",
        "name": "USB-C to USB-A cable, 1 m",
        "material": {
          "value": "TPE jacket, copper",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "process": {
          "value": "purchased-assembly",
          "source": "inferred",
          "confidence": "high"
        },
        "mass_g": {
          "value": 22,
          "unit": "g",
          "source": "measured",
          "confidence": "high",
          "evidence": [
            "src:caliper-run-1"
          ],
          "note": "scale, 0.01 g, mean of 30 units"
        }
      }
    ],
    "assemblies": [
      {
        "id": "asm:top-sub",
        "name": "Top shell with buttons and dome sheet"
      },
      {
        "id": "asm:core",
        "name": "Bottom shell with PCBA, stick, battery and haptic"
      },
      {
        "id": "asm:ec-1",
        "name": "EC-1, closed unit"
      },
      {
        "id": "asm:packed",
        "name": "Packed unit"
      }
    ],
    "bom": [
      {
        "item": "asm:packed",
        "parent": null,
        "qty": 1
      },
      {
        "item": "asm:ec-1",
        "parent": "asm:packed",
        "qty": 1
      },
      {
        "item": "part:retail-box",
        "parent": "asm:packed",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.45,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:pack"
      },
      {
        "item": "part:pack-tray",
        "parent": "asm:packed",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.12,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:pack"
      },
      {
        "item": "part:usb-cable",
        "parent": "asm:packed",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.3,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:pack"
      },
      {
        "item": "asm:top-sub",
        "parent": "asm:ec-1",
        "qty": 1
      },
      {
        "item": "asm:core",
        "parent": "asm:ec-1",
        "qty": 1
      },
      {
        "item": "part:screw-m2x6",
        "parent": "asm:ec-1",
        "qty": 4,
        "unit_cost_usd": {
          "value": 0.006,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:fastener"
      },
      {
        "item": "part:rating-label",
        "parent": "asm:ec-1",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.02,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:pack"
      },
      {
        "item": "part:top-shell",
        "parent": "asm:top-sub",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.62,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:shell-moulder"
      },
      {
        "item": "part:light-pipe",
        "parent": "asm:top-sub",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.02,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:shell-moulder"
      },
      {
        "item": "part:button-cap",
        "parent": "asm:top-sub",
        "qty": 4,
        "unit_cost_usd": {
          "value": 0.03,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:shell-moulder"
      },
      {
        "item": "part:shoulder-button",
        "parent": "asm:top-sub",
        "qty": 2,
        "unit_cost_usd": {
          "value": 0.05,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:shell-moulder"
      },
      {
        "item": "part:dome-sheet",
        "parent": "asm:top-sub",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.09,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:rubber"
      },
      {
        "item": "part:bottom-shell",
        "parent": "asm:core",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.58,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:shell-moulder"
      },
      {
        "item": "part:main-pcba",
        "parent": "asm:core",
        "qty": 1,
        "unit_cost_usd": {
          "value": 4.93,
          "unit": "USD",
          "source": "inferred",
          "confidence": "low",
          "note": "should-cost; PCBA rolls up its parts plus 0.60 for SMT and test"
        },
        "supplier": "sup:ems"
      },
      {
        "item": "part:stick-module",
        "parent": "asm:core",
        "qty": 1,
        "unit_cost_usd": {
          "value": 1.35,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:stick-vendor"
      },
      {
        "item": "part:battery",
        "parent": "asm:core",
        "qty": 1,
        "unit_cost_usd": {
          "value": 1.1,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:cell-maker"
      },
      {
        "item": "part:haptic-lra",
        "parent": "asm:core",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.38,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:haptic-vendor"
      },
      {
        "item": "part:pcb",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.85,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:ems"
      },
      {
        "item": "part:soc",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 1.9,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:imu",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.55,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:pmic",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.42,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:usb-c",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.12,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:antenna",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.08,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:crystal",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.06,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      },
      {
        "item": "part:passives",
        "parent": "part:main-pcba",
        "qty": 1,
        "unit_cost_usd": {
          "value": 0.35,
          "unit": "USD",
          "source": "inferred",
          "confidence": "medium"
        },
        "supplier": "sup:chip-distributor"
      }
    ],
    "suppliers": [
      {
        "id": "sup:shell-moulder",
        "name": {
          "value": "Shell moulder, from tool marks and cavity numbering",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Dongguan, CN",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:ems",
        "name": {
          "value": "EMS for SMT and the PCBA (fictional)",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Shenzhen, CN",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:stick-vendor",
        "name": {
          "value": "Stick module vendor, from the module marking EXS-10K",
          "source": "inferred",
          "confidence": "medium"
        },
        "region": {
          "value": "Guangdong, CN",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "sup:cell-maker",
        "name": {
          "value": "Cell maker, from the cell label",
          "source": "inferred",
          "confidence": "medium"
        },
        "region": {
          "value": "Huizhou, CN",
          "source": "observed",
          "confidence": "medium"
        }
      },
      {
        "id": "sup:haptic-vendor",
        "name": {
          "value": "LRA vendor",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "unknown",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:fastener",
        "name": {
          "value": "Fastener house",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Dongguan, CN",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:rubber",
        "name": {
          "value": "Silicone moulder",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Dongguan, CN",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:chip-distributor",
        "name": {
          "value": "Authorised distributor for silicon",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Shenzhen, CN",
          "source": "inferred",
          "confidence": "low"
        }
      },
      {
        "id": "sup:pack",
        "name": {
          "value": "Packaging and accessories",
          "source": "inferred",
          "confidence": "low"
        },
        "region": {
          "value": "Dongguan, CN",
          "source": "inferred",
          "confidence": "low"
        }
      }
    ],
    "operations": [
      {
        "id": "op:buttons-in",
        "name": "Seat light pipe, face buttons and shoulder buttons in top shell",
        "type": "place",
        "inputs": [
          "part:top-shell",
          "part:light-pipe",
          "part:button-cap",
          "part:shoulder-button"
        ],
        "output": "asm:top-sub",
        "station": "sta:a1",
        "method": {
          "value": "by hand, shell face-down in nest",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "top-shell nest",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 14,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:dome-place",
        "name": "Place dome sheet over the buttons",
        "type": "place",
        "inputs": [
          "asm:top-sub",
          "part:dome-sheet"
        ],
        "output": "asm:top-sub",
        "station": "sta:a1",
        "method": {
          "value": "by hand onto two locating pins",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "dome locator pins",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:stick-solder",
        "name": "Hand-solder stick module to the PCBA (6 pins)",
        "type": "solder",
        "inputs": [
          "part:main-pcba",
          "part:stick-module"
        ],
        "output": "asm:core",
        "station": "sta:a2",
        "method": {
          "value": "hand solder, no-clean flux core wire",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "PCBA nest with stick square",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 22,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:pcba-place",
        "name": "Snap PCBA into bottom shell",
        "type": "snap-fit",
        "inputs": [
          "part:bottom-shell",
          "asm:core"
        ],
        "output": "asm:core",
        "station": "sta:a2",
        "method": {
          "value": "two snaps, then press at four bosses",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:battery-adhere",
        "name": "Stick battery into pocket with PSA",
        "type": "adhesive",
        "inputs": [
          "asm:core",
          "part:battery"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "peel liner, place, press 20 N for 3 s",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "battery press",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 10,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:haptic-place",
        "name": "Place LRA and mate its connector",
        "type": "connector-mate",
        "inputs": [
          "asm:core",
          "part:haptic-lra"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "by hand into rib pocket",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 8,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:battery-mate",
        "name": "Mate battery connector",
        "type": "connector-mate",
        "inputs": [
          "asm:core"
        ],
        "output": "asm:core",
        "station": "sta:a3",
        "method": {
          "value": "by hand, listen for click",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "cycle_time_s": {
          "value": 5,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:close",
        "name": "Close top sub-assembly onto the core",
        "type": "snap-fit",
        "inputs": [
          "asm:core",
          "asm:top-sub"
        ],
        "output": "asm:ec-1",
        "station": "sta:a4",
        "method": {
          "value": "align at USB-C end, rotate closed",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "closing fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 8,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:screw",
        "name": "Drive four M2 screws to 0.18 N·m",
        "type": "screw",
        "inputs": [
          "asm:ec-1",
          "part:screw-m2x6"
        ],
        "output": "asm:ec-1",
        "station": "sta:a4",
        "method": {
          "value": "torque driver, cross pattern",
          "source": "observed",
          "confidence": "medium",
          "evidence": [
            "src:teardown-log"
          ]
        },
        "fixture": {
          "value": "closing fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 16,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:flash",
        "name": "Flash the test image, then RF test",
        "type": "flash",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t1",
        "method": {
          "value": "USB-C pogo, then radiated test in shield box",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "USB-C pogo fixture",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 30,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:stick-cal",
        "name": "Stick centre and range calibration",
        "type": "ext:controller:stick-calibrate",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t2",
        "method": {
          "value": "robot sweeps the stick to 8 points and centre",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "stick robot nest",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 15,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:functional",
        "name": "Buttons, IMU, haptics and LED",
        "type": "test",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t2",
        "method": {
          "value": "press head, 90 degree turntable step, LRA current",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 12,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:cosmetic",
        "name": "Cosmetic and gap check",
        "type": "inspect",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t3",
        "method": {
          "value": "camera arch plus feeler gauge at shoulder buttons",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 12,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:charge",
        "name": "Charge current and battery check",
        "type": "test",
        "inputs": [
          "asm:ec-1"
        ],
        "output": "asm:ec-1",
        "station": "sta:t4",
        "method": {
          "value": "5 V in, measure charge current and cell voltage",
          "source": "inferred",
          "confidence": "medium"
        },
        "fixture": {
          "value": "8-up rack",
          "source": "inferred",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 20,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:label",
        "name": "Apply rating label",
        "type": "label",
        "inputs": [
          "asm:ec-1",
          "part:rating-label"
        ],
        "output": "asm:ec-1",
        "station": "sta:p1",
        "method": {
          "value": "print and apply, scan serial",
          "source": "observed",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 6,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      },
      {
        "id": "op:pack",
        "name": "Pack with tray and cable",
        "type": "pack",
        "inputs": [
          "asm:ec-1",
          "part:retail-box",
          "part:pack-tray",
          "part:usb-cable"
        ],
        "output": "asm:packed",
        "station": "sta:p1",
        "method": {
          "value": "tray, unit, cable, close, weigh",
          "source": "observed",
          "confidence": "medium"
        },
        "cycle_time_s": {
          "value": 14,
          "unit": "s",
          "source": "inferred",
          "confidence": "low",
          "note": "time-study estimate on the synthetic build"
        }
      }
    ],
    "stations": [
      {
        "id": "sta:iqc-1",
        "name": "Incoming inspection",
        "type": "iqc",
        "equipment": [
          {
            "value": "caliper and pin gauges",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "light booth",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "battery OCV meter",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/IQC1",
        "isa95_work_center": "EC1-Cell/IQC1",
        "data_interface": "none"
      },
      {
        "id": "sta:a1",
        "name": "Top-shell sub-assembly",
        "type": "assembly",
        "equipment": [
          {
            "value": "nest fixture for the top shell",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "dome sheet locator",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A1",
        "isa95_work_center": "EC1-Cell/A1",
        "data_interface": "none"
      },
      {
        "id": "sta:a2",
        "name": "Stick and PCBA to bottom shell",
        "type": "assembly",
        "equipment": [
          {
            "value": "temperature-controlled soldering iron, 350 C",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "fume extractor",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "PCBA nest",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A2",
        "isa95_work_center": "EC1-Cell/A2",
        "data_interface": "none"
      },
      {
        "id": "sta:a3",
        "name": "Battery and haptic",
        "type": "assembly",
        "equipment": [
          {
            "value": "PSA liner peeler",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "battery press, 20 N",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A3",
        "isa95_work_center": "EC1-Cell/A3",
        "data_interface": "none"
      },
      {
        "id": "sta:a4",
        "name": "Close and screw",
        "type": "assembly",
        "equipment": [
          {
            "value": "closing fixture",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "electric torque driver, 0.18 N·m, with count check",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/A4",
        "isa95_work_center": "EC1-Cell/A4",
        "data_interface": "none",
        "device_references": [
          {
            "device": {
              "value": "electric torque driver with count check",
              "source": "observed",
              "confidence": "medium",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "final torque",
                "unit": "N·m"
              },
              {
                "name": "angle",
                "unit": "deg"
              }
            ],
            "adjustable": [
              {
                "name": "target torque",
                "unit": "N·m",
                "min": 0.1,
                "max": 0.3
              }
            ],
            "safety_limits": [
              {
                "name": "max torque",
                "limit": 0.3,
                "unit": "N·m"
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t1",
        "name": "Flash test image and RF test",
        "type": "test",
        "equipment": [
          {
            "value": "RF shield box",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "BLE tester",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "USB-C pogo fixture",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T1",
        "isa95_work_center": "EC1-Cell/T1",
        "data_interface": "ipc-cfx",
        "device_references": [
          {
            "device": {
              "value": "BLE tester in RF shield box",
              "source": "inferred",
              "confidence": "medium"
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "TX power",
                "unit": "dBm"
              },
              {
                "name": "RSSI",
                "unit": "dBm"
              }
            ],
            "adjustable": [
              {
                "name": "channel",
                "min": 0,
                "max": 39
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t2",
        "name": "Functional test and stick calibration",
        "type": "test",
        "equipment": [
          {
            "value": "stick actuation robot",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "button press head",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "IMU turntable",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T2",
        "isa95_work_center": "EC1-Cell/T2",
        "data_interface": "ipc-cfx",
        "device_references": [
          {
            "device": {
              "value": "stick actuation robot",
              "source": "inferred",
              "confidence": "medium"
            },
            "spec": "mhs-preview",
            "measures": [
              {
                "name": "stick position",
                "unit": "% of full scale"
              }
            ],
            "adjustable": [
              {
                "name": "deflection angle",
                "unit": "deg",
                "min": 0,
                "max": 28
              }
            ],
            "safety_limits": [
              {
                "name": "max push force",
                "limit": 8,
                "unit": "N"
              }
            ]
          }
        ]
      },
      {
        "id": "sta:t3",
        "name": "Cosmetic and gap check",
        "type": "fqc",
        "equipment": [
          {
            "value": "camera arch, 4 cameras",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "feeler gauges 0.10 / 0.30 mm",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T3",
        "isa95_work_center": "EC1-Cell/T3",
        "data_interface": "ipc-cfx"
      },
      {
        "id": "sta:t4",
        "name": "Charge and battery test",
        "type": "test",
        "equipment": [
          {
            "value": "programmable USB-C load",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "8-up charge rack",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/T4",
        "isa95_work_center": "EC1-Cell/T4",
        "data_interface": "ipc-cfx"
      },
      {
        "id": "sta:p1",
        "name": "Label and pack",
        "type": "pack",
        "equipment": [
          {
            "value": "label printer and applicator",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          },
          {
            "value": "pack bench, scale",
            "source": "observed",
            "confidence": "medium",
            "evidence": [
              "src:teardown-log",
              "src:photos"
            ]
          }
        ],
        "operators": {
          "value": 2,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/P1",
        "isa95_work_center": "EC1-Cell/P1",
        "data_interface": "none"
      },
      {
        "id": "sta:oqc-1",
        "name": "Outgoing audit",
        "type": "oqc",
        "equipment": [
          {
            "value": "full functional test set",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          },
          {
            "value": "drop tester (sampled)",
            "source": "inferred",
            "confidence": "low",
            "note": "implied by the design and the tests the product needs"
          }
        ],
        "operators": {
          "value": 1,
          "source": "inferred",
          "confidence": "medium"
        },
        "layout_usd_prim": "/Line/OQC1",
        "isa95_work_center": "EC1-Cell/OQC1",
        "data_interface": "none"
      }
    ],
    "inspection_plans": [
      {
        "id": "insp:shell-iqc",
        "station": "sta:iqc-1",
        "stage": "iqc",
        "item": "part:top-shell",
        "characteristic": "Length, width and stick hole diameter; cosmetic grade A",
        "method": {
          "value": "caliper and pin gauge; light booth",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "ANSI/ASQ Z1.4",
          "inspection_level": "II",
          "aql": 1,
          "lot_size_range": [
            1201,
            3200
          ],
          "sample_size": 125,
          "basis": {
            "value": "general inspection level II, normal inspection",
            "source": "inferred",
            "confidence": "medium"
          }
        }
      },
      {
        "id": "insp:stick-iqc",
        "station": "sta:iqc-1",
        "stage": "iqc",
        "item": "part:stick-module",
        "characteristic": "Centre return and full travel resistance",
        "method": {
          "value": "fixture with ohmmeter",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "ANSI/ASQ Z1.4",
          "inspection_level": "II",
          "aql": 0.65,
          "lot_size_range": [
            1201,
            3200
          ],
          "sample_size": 125,
          "basis": {
            "value": "general inspection level II, normal inspection",
            "source": "inferred",
            "confidence": "medium"
          }
        }
      },
      {
        "id": "insp:cell-iqc",
        "station": "sta:iqc-1",
        "stage": "iqc",
        "item": "part:battery",
        "characteristic": "Open-circuit voltage 3.75 to 3.90 V; thickness at most 6.1 mm",
        "method": {
          "value": "OCV meter and caliper",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "ANSI/ASQ Z1.4",
          "inspection_level": "II",
          "aql": 0.4,
          "lot_size_range": [
            1201,
            3200
          ],
          "sample_size": 125,
          "basis": {
            "value": "general inspection level II, normal inspection",
            "source": "inferred",
            "confidence": "medium"
          }
        }
      },
      {
        "id": "insp:screw-audit",
        "station": "sta:a4",
        "stage": "ipqc",
        "item": "op:screw",
        "characteristic": "Breakaway torque 0.16 to 0.22 N·m",
        "method": {
          "value": "torque audit gauge, 5 units per hour",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "other",
          "sample_size": 5
        }
      },
      {
        "id": "insp:cosmetic-100",
        "station": "sta:t3",
        "stage": "fqc",
        "item": "asm:ec-1",
        "characteristic": "No scratch over 0.3 mm in zone A; shoulder gap 0.10 to 0.30 mm",
        "method": {
          "value": "camera arch and feeler gauge",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "100%"
        }
      },
      {
        "id": "insp:oqc",
        "station": "sta:oqc-1",
        "stage": "oqc",
        "item": "asm:packed",
        "characteristic": "Full functional, pack contents, label, drop 1.2 m on 1 unit per lot",
        "method": {
          "value": "full test set",
          "source": "inferred",
          "confidence": "medium"
        },
        "sampling": {
          "standard": "ANSI/ASQ Z1.4",
          "inspection_level": "II",
          "aql": 0.65,
          "lot_size_range": [
            501,
            1200
          ],
          "sample_size": 80,
          "basis": {
            "value": "general inspection level II, normal inspection",
            "source": "inferred",
            "confidence": "medium"
          }
        }
      }
    ],
    "tests": [
      {
        "id": "test:flash-ok",
        "station": "sta:t1",
        "name": "Test image flashed and verified",
        "measures": "image checksum"
      },
      {
        "id": "test:rf-power",
        "station": "sta:t1",
        "name": "Radiated output power",
        "measures": "TX power at 2440 MHz",
        "lower": {
          "value": -6,
          "unit": "dBm",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 4,
          "unit": "dBm",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:rf-rssi",
        "station": "sta:t1",
        "name": "Receive sensitivity",
        "measures": "RSSI from reference tag at 1 m",
        "lower": {
          "value": -70,
          "unit": "dBm",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:stick-centre",
        "station": "sta:t2",
        "name": "Stick centre at rest, after calibration",
        "measures": "centre offset",
        "upper": {
          "value": 1,
          "unit": "% of full scale",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:stick-range",
        "station": "sta:t2",
        "name": "Stick range, each axis",
        "measures": "full-scale reach",
        "lower": {
          "value": 96,
          "unit": "% of full scale",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:button-force",
        "station": "sta:t2",
        "name": "Face button actuation force",
        "measures": "force at contact",
        "lower": {
          "value": 150,
          "unit": "gf",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 210,
          "unit": "gf",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:imu-bias",
        "station": "sta:t2",
        "name": "Gyro zero-rate bias",
        "measures": "bias, each axis",
        "upper": {
          "value": 2,
          "unit": "deg/s",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:haptic-current",
        "station": "sta:t2",
        "name": "LRA drive current",
        "measures": "RMS current at 170 Hz",
        "lower": {
          "value": 40,
          "unit": "mA",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 90,
          "unit": "mA",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:charge-current",
        "station": "sta:t4",
        "name": "Charge current at 5 V",
        "measures": "input current",
        "lower": {
          "value": 280,
          "unit": "mA",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 360,
          "unit": "mA",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:cell-voltage",
        "station": "sta:t4",
        "name": "Cell voltage after 20 s charge",
        "measures": "cell voltage",
        "lower": {
          "value": 3.7,
          "unit": "V",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 4.05,
          "unit": "V",
          "source": "inferred",
          "confidence": "medium"
        }
      },
      {
        "id": "test:shoulder-gap",
        "station": "sta:t3",
        "name": "Gap at shoulder buttons",
        "measures": "feeler gauge",
        "lower": {
          "value": 0.1,
          "unit": "mm",
          "source": "inferred",
          "confidence": "medium"
        },
        "upper": {
          "value": 0.3,
          "unit": "mm",
          "source": "inferred",
          "confidence": "medium"
        }
      }
    ],
    "pfmea": [
      {
        "id": "fm:stick-flux",
        "operation": "op:stick-solder",
        "failure_mode": "Flux residue wicks into stick potentiometer",
        "effect": "Stick drift in the field",
        "cause": "Too much flux, iron dwell over 3 s",
        "severity": 7,
        "occurrence": 5,
        "detection": 7,
        "evidence": [
          "src:repair-guide",
          "src:reviews"
        ]
      },
      {
        "id": "fm:stick-cold-joint",
        "operation": "op:stick-solder",
        "failure_mode": "Cold or cracked solder joint on stick pins",
        "effect": "Intermittent stick axis",
        "cause": "Iron temperature or dwell too low",
        "severity": 7,
        "occurrence": 3,
        "detection": 4,
        "evidence": [
          "src:ct-run-1"
        ]
      },
      {
        "id": "fm:pcba-boss-crack",
        "operation": "op:pcba-place",
        "failure_mode": "Board pressed onto its ledges cracks a support rib",
        "effect": "Loose PCBA, rattle",
        "cause": "Press force not controlled",
        "severity": 5,
        "occurrence": 2,
        "detection": 6,
        "evidence": [
          "src:teardown-log"
        ]
      },
      {
        "id": "fm:cell-misplace",
        "operation": "op:battery-adhere",
        "failure_mode": "Battery placed off-pocket",
        "effect": "Pinched cell at close, swelling risk",
        "cause": "No locating feature for the cell",
        "severity": 9,
        "occurrence": 2,
        "detection": 5,
        "evidence": [
          "src:ct-run-1"
        ]
      },
      {
        "id": "fm:haptic-reversed",
        "operation": "op:haptic-place",
        "failure_mode": "LRA connector mated off by one pin",
        "effect": "No haptics",
        "cause": "Unkeyed 2-pin connector",
        "severity": 5,
        "occurrence": 2,
        "detection": 3,
        "evidence": [
          "src:teardown-log"
        ]
      },
      {
        "id": "fm:battery-unseat",
        "operation": "op:battery-mate",
        "failure_mode": "Battery connector half-seated",
        "effect": "Dead unit after drop",
        "cause": "No seat check, tight z-height under the top shell",
        "severity": 8,
        "occurrence": 4,
        "detection": 6,
        "evidence": [
          "src:ct-run-1",
          "src:reviews"
        ]
      },
      {
        "id": "fm:pinched-wire",
        "operation": "op:close",
        "failure_mode": "Battery wire pinched between shells",
        "effect": "Short, field return, safety",
        "cause": "Wire routed over the boss",
        "severity": 9,
        "occurrence": 2,
        "detection": 5,
        "evidence": [
          "src:ct-run-1"
        ]
      },
      {
        "id": "fm:screw-strip",
        "operation": "op:screw",
        "failure_mode": "Screw strips the boss",
        "effect": "Loose shell, gap",
        "cause": "Torque too high or cross-threaded",
        "severity": 5,
        "occurrence": 3,
        "detection": 3,
        "evidence": [
          "src:teardown-log"
        ]
      },
      {
        "id": "fm:rf-low",
        "operation": "op:flash",
        "failure_mode": "Low radiated power",
        "effect": "Short range in the field",
        "cause": "LRA placed against the antenna keep-out",
        "severity": 6,
        "occurrence": 3,
        "detection": 2,
        "evidence": [
          "src:eol-sample"
        ]
      },
      {
        "id": "fm:stick-cal-fail",
        "operation": "op:stick-cal",
        "failure_mode": "Calibration out of range",
        "effect": "Rework or scrap",
        "cause": "Stick module centre offset beyond 4%",
        "severity": 4,
        "occurrence": 4,
        "detection": 2,
        "evidence": [
          "src:eol-sample"
        ]
      },
      {
        "id": "fm:gap-high",
        "operation": "op:cosmetic",
        "failure_mode": "Shoulder gap over 0.30 mm",
        "effect": "Cosmetic complaint, dust ingress",
        "cause": "Shell warp at the shoulder wall",
        "severity": 4,
        "occurrence": 5,
        "detection": 4,
        "evidence": [
          "src:caliper-run-1",
          "src:reviews"
        ]
      },
      {
        "id": "fm:wrong-label",
        "operation": "op:label",
        "failure_mode": "Label serial does not match the unit",
        "effect": "Traceability lost",
        "cause": "Label printed ahead of unit",
        "severity": 4,
        "occurrence": 2,
        "detection": 3,
        "evidence": [
          "src:teardown-log"
        ]
      }
    ],
    "design_intent": {
      "targets": [
        {
          "characteristic": "gap",
          "where": [
            "part:top-shell"
          ],
          "target": {
            "value": 0.2,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low"
          },
          "lower": {
            "value": 0.1,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low"
          },
          "upper": {
            "value": 0.3,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low"
          },
          "priority": "should",
          "owner": "industrial-design",
          "rationale": "Even, tight seam at the shoulder buttons"
        },
        {
          "characteristic": "button-force",
          "where": [
            "part:button-cap"
          ],
          "target": {
            "value": 180,
            "unit": "gf",
            "source": "measured",
            "confidence": "medium"
          },
          "lower": {
            "value": 150,
            "unit": "gf",
            "source": "measured",
            "confidence": "medium"
          },
          "upper": {
            "value": 210,
            "unit": "gf",
            "source": "measured",
            "confidence": "medium"
          },
          "priority": "should",
          "owner": "industrial-design",
          "rationale": "Crisp, light press"
        },
        {
          "characteristic": "button-travel",
          "where": [
            "part:button-cap"
          ],
          "target": {
            "value": 0.8,
            "unit": "mm",
            "source": "measured",
            "confidence": "medium"
          },
          "lower": {
            "value": 0.6,
            "unit": "mm",
            "source": "measured",
            "confidence": "medium"
          },
          "upper": {
            "value": 1,
            "unit": "mm",
            "source": "measured",
            "confidence": "medium"
          },
          "priority": "nice",
          "owner": "industrial-design"
        },
        {
          "characteristic": "weight",
          "where": [
            "asm:ec-1"
          ],
          "target": {
            "value": 69,
            "unit": "g",
            "source": "measured",
            "confidence": "high"
          },
          "upper": {
            "value": 74,
            "unit": "g",
            "source": "measured",
            "confidence": "high"
          },
          "priority": "must",
          "owner": "product",
          "rationale": "Light enough for long sessions; set from the parts below"
        },
        {
          "characteristic": "battery-life",
          "where": [
            "part:battery"
          ],
          "target": {
            "value": 30,
            "unit": "h",
            "source": "inferred",
            "confidence": "medium"
          },
          "lower": {
            "value": 25,
            "unit": "h",
            "source": "inferred",
            "confidence": "medium"
          },
          "priority": "must",
          "owner": "product",
          "rationale": "A week of evenings on one charge"
        },
        {
          "characteristic": "drop-height",
          "where": [
            "asm:ec-1"
          ],
          "target": {
            "value": 1.2,
            "unit": "m",
            "source": "inferred",
            "confidence": "medium"
          },
          "priority": "must",
          "owner": "reliability"
        },
        {
          "characteristic": "thickness",
          "where": [
            "asm:ec-1"
          ],
          "target": {
            "value": 22,
            "unit": "mm",
            "source": "measured",
            "confidence": "high"
          },
          "upper": {
            "value": 23,
            "unit": "mm",
            "source": "measured",
            "confidence": "high"
          },
          "priority": "should",
          "owner": "industrial-design"
        }
      ]
    },
    "issues": [
      {
        "id": "iss:stick-drift-flux",
        "title": "Stick drift traced to flux under the potentiometer",
        "visibility": "public",
        "failure_mode": "ext:controller:stick-drift",
        "part_types": [
          "sensor"
        ],
        "processes": [
          "solder"
        ],
        "observed_on": [
          "field",
          "simulated"
        ],
        "detected_at": [
          "field",
          "test"
        ],
        "conditions": "Hand soldering with flux-core wire next to an open potentiometer housing; worse after months of use",
        "yield_impact": {
          "value": 1.2,
          "unit": "%",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:reviews",
            "src:repair-guide"
          ],
          "note": "field return share attributed to drift in the review sample"
        },
        "root_cause": {
          "value": "Flux migrates into the carbon track and changes wiper resistance",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:ct-run-1",
            "src:repair-guide"
          ]
        },
        "resolutions": [
          {
            "fix_type": "design-change",
            "description": "Replace soldered pins with an FPC connector on the stick module",
            "status": "proposed",
            "operations": [
              "op:stick-solder"
            ]
          },
          {
            "fix_type": "sop-update",
            "description": "Cap iron dwell at 2 s, no extra flux, inspect with 10x loupe",
            "status": "implemented",
            "operations": [
              "op:stick-solder"
            ],
            "implemented_on": "2026-09-14",
            "implementation_evidence": [
              {
                "kind": "sop-revision",
                "source": "src:teardown-log",
                "note": "SOP A2 rev C, step 3"
              }
            ],
            "yield_before": {
              "value": 97.8,
              "unit": "%",
              "source": "inferred",
              "confidence": "low"
            },
            "yield_after": {
              "value": 98.6,
              "unit": "%",
              "source": "inferred",
              "confidence": "low"
            }
          }
        ],
        "parts": [
          "part:stick-module",
          "part:main-pcba"
        ],
        "operations": [
          "op:stick-solder"
        ],
        "pfmea": [
          "fm:stick-flux"
        ],
        "tags": [
          "solder",
          "field-return"
        ]
      },
      {
        "id": "iss:battery-unseat",
        "title": "Battery connector unseats after a 1.2 m drop",
        "visibility": "public",
        "failure_mode": "connector-unseat",
        "part_types": [
          "fpc-connector",
          "battery"
        ],
        "processes": [
          "connector-mate"
        ],
        "observed_on": [
          "simulated",
          "dvt"
        ],
        "detected_at": [
          "reliability-test"
        ],
        "conditions": "Tight z-height over the connector; the top shell rib lands 0.3 mm above it",
        "yield_impact": {
          "value": 0.9,
          "unit": "%",
          "source": "inferred",
          "confidence": "low",
          "evidence": [
            "src:ct-run-1"
          ],
          "note": "drop-test fallout in the simulated build"
        },
        "root_cause": {
          "value": "No preload on the connector and no seat check at mating",
          "source": "inferred",
          "confidence": "medium",
          "evidence": [
            "src:ct-run-1"
          ]
        },
        "resolutions": [
          {
            "fix_type": "fixture-change",
            "description": "Closing fixture presses the connector while the shell closes",
            "status": "proposed",
            "operations": [
              "op:close"
            ]
          },
          {
            "fix_type": "sop-update",
            "description": "Tug test after mating, 2 N, at sta:a3",
            "status": "proposed",
            "operations": [
              "op:battery-mate"
            ]
          }
        ],
        "parts": [
          "part:battery",
          "part:main-pcba"
        ],
        "operations": [
          "op:battery-mate",
          "op:close"
        ],
        "pfmea": [
          "fm:battery-unseat"
        ],
        "tags": [
          "tight-space",
          "drop"
        ]
      },
      {
        "id": "iss:shoulder-gap",
        "title": "Shoulder-button gap opens past 0.30 mm on cavity 2",
        "visibility": "embargoed",
        "embargo_until": "2028-06-01",
        "failure_mode": "gap-flush",
        "part_types": [
          "housing",
          "button"
        ],
        "processes": [
          "inspect"
        ],
        "observed_on": [
          "pvt"
        ],
        "detected_at": [
          "fqc"
        ],
        "conditions": "Cavity 2 of the top-shell tool; worse in the first hour after a mould start",
        "yield_impact": {
          "value": 1.7,
          "unit": "%",
          "source": "inferred",
          "confidence": "low",
          "evidence": [
            "src:caliper-run-1"
          ]
        },
        "root_cause": {
          "value": "Uneven cooling bows the shoulder wall outward on cavity 2",
          "source": "inferred",
          "confidence": "low",
          "evidence": [
            "src:caliper-run-1"
          ]
        },
        "resolutions": [
          {
            "fix_type": "process-change",
            "description": "Raise mould temperature 8 C and extend cooling 2 s on cavity 2",
            "status": "trialled",
            "operations": [
              "op:cosmetic"
            ],
            "yield_before": {
              "value": 98.3,
              "unit": "%",
              "source": "inferred",
              "confidence": "low"
            },
            "yield_after": {
              "value": 99.1,
              "unit": "%",
              "source": "inferred",
              "confidence": "low"
            }
          }
        ],
        "parts": [
          "part:top-shell",
          "part:shoulder-button"
        ],
        "operations": [
          "op:cosmetic"
        ],
        "pfmea": [
          "fm:gap-high"
        ],
        "tags": [
          "tooling",
          "cosmetic"
        ]
      },
      {
        "id": "iss:rf-detune",
        "title": "RF power low when the LRA sits against the antenna keep-out",
        "visibility": "public",
        "failure_mode": "rf-detune",
        "part_types": [
          "antenna",
          "motor-haptic"
        ],
        "processes": [
          "connector-mate"
        ],
        "observed_on": [
          "simulated"
        ],
        "detected_at": [
          "test"
        ],
        "conditions": "The LRA pocket allows 2 mm of play toward the antenna",
        "yield_impact": {
          "value": 0.6,
          "unit": "%",
          "source": "inferred",
          "confidence": "low",
          "evidence": [
            "src:eol-sample"
          ]
        },
        "root_cause": {
          "value": "Metal LRA can within 5 mm of the chip antenna detunes it",
          "source": "inferred",
          "confidence": "medium"
        },
        "resolutions": [
          {
            "fix_type": "design-change",
            "description": "Add a rib so the LRA can't move toward the antenna",
            "status": "proposed",
            "operations": [
              "op:haptic-place"
            ]
          }
        ],
        "parts": [
          "part:haptic-lra",
          "part:antenna"
        ],
        "operations": [
          "op:haptic-place"
        ],
        "pfmea": [
          "fm:rf-low"
        ],
        "tags": [
          "rf",
          "placement"
        ]
      }
    ],
    "variants": {
      "objectives": [
        {
          "metric": "yield.rty",
          "direction": "max"
        },
        {
          "metric": "cost.cost_per_good_unit",
          "direction": "min"
        },
        {
          "metric": "throughput.cycle_time",
          "direction": "min"
        }
      ],
      "constraints": [
        "takt 36 s (2,000 units a day over two 10-hour shifts)",
        "headcount at most 12",
        "no single new tool over 25,000 USD"
      ],
      "baseline": {
        "scores": {
          "yield": {
            "fpy_by_station": {
              "sta:a2": {
                "value": 0.992,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:a3": {
                "value": 0.996,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:a4": {
                "value": 0.99,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:t1": {
                "value": 0.985,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:t2": {
                "value": 0.978,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:t3": {
                "value": 0.983,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "sta:t4": {
                "value": 0.995,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              }
            },
            "rty": {
              "value": 0.922,
              "origin": "simulated",
              "engine": "monte-carlo",
              "runs": 20000,
              "interval": [
                0.905,
                0.935
              ],
              "confidence": "low"
            },
            "top_failure_modes": [
              {
                "failure_mode": "ext:controller:stick-drift",
                "share": {
                  "value": 0.24,
                  "origin": "simulated",
                  "engine": "monte-carlo",
                  "runs": 20000,
                  "confidence": "low"
                },
                "issue": "iss:stick-drift-flux",
                "pfmea": "fm:stick-flux"
              },
              {
                "failure_mode": "connector-unseat",
                "share": {
                  "value": 0.18,
                  "origin": "simulated",
                  "engine": "mujoco",
                  "runs": 2000,
                  "confidence": "low"
                },
                "issue": "iss:battery-unseat",
                "pfmea": "fm:battery-unseat"
              },
              {
                "failure_mode": "gap-flush",
                "share": {
                  "value": 0.16,
                  "origin": "simulated",
                  "engine": "monte-carlo",
                  "runs": 20000,
                  "confidence": "low"
                },
                "issue": "iss:shoulder-gap",
                "pfmea": "fm:gap-high"
              }
            ]
          },
          "throughput": {
            "cycle_time": {
              "value": 30,
              "unit": "s",
              "origin": "estimated",
              "engine": "analytic",
              "confidence": "low",
              "note": "slowest station from time studies; needs the discrete-event simulator"
            },
            "takt": {
              "value": 36,
              "unit": "s",
              "origin": "estimated",
              "engine": "analytic",
              "confidence": "high"
            },
            "bottleneck_station": "sta:t1",
            "headcount": 11
          },
          "cost": {
            "cost_per_good_unit": {
              "value": 1.92,
              "unit": "USD",
              "origin": "estimated",
              "engine": "analytic",
              "confidence": "low",
              "note": "conversion cost per good unit, including scrap and rework"
            }
          },
          "experience": {
            "weight": {
              "value": 69.4,
              "unit": "g",
              "origin": "measured",
              "confidence": "medium",
              "evidence": [
                "src:caliper-run-1"
              ]
            },
            "gap_flush_consistency": {
              "value": 0.0493,
              "unit": "mm, 1 sigma",
              "origin": "measured",
              "confidence": "medium",
              "evidence": [
                "src:caliper-run-1"
              ]
            },
            "predicted_field_return_rate": {
              "value": 0.031,
              "origin": "estimated",
              "confidence": "low"
            },
            "review_sentiment": {
              "value": 0.42,
              "unit": "-1 to 1",
              "origin": "measured",
              "engine": "review-analysis",
              "confidence": "low",
              "evidence": [
                "src:reviews"
              ]
            }
          }
        },
        "pareto": {
          "on_frontier": true
        }
      },
      "candidates": [
        {
          "id": "var:split-t1",
          "name": "Second RF shield box at T1",
          "kind": "equipment",
          "base": "baseline",
          "description": "Two shield boxes so flashing and RF test run in parallel",
          "changes": [
            {
              "action": "add",
              "target": [
                "sta:t1"
              ],
              "description": "Second shield box and BLE tester"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "analytic",
            "created": "2026-10-30"
          },
          "scores": {
            "yield": {
              "rty": {
                "value": 0.922,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              }
            },
            "throughput": {
              "cycle_time": {
                "value": 25,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              },
              "bottleneck_station": "sta:t2",
              "headcount": 11
            },
            "cost": {
              "cost_per_good_unit": {
                "value": 1.98,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              },
              "capex": {
                "value": 9800,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "medium"
              }
            }
          },
          "pareto": {
            "on_frontier": true
          }
        },
        {
          "id": "var:stick-connector",
          "name": "FPC connector for the stick instead of hand soldering",
          "kind": "design-change",
          "base": "baseline",
          "description": "Stick module ships with a flex tail; a ZIF connector replaces six hand-soldered pins",
          "addresses": [
            "iss:stick-drift-flux",
            "fm:stick-flux"
          ],
          "changes": [
            {
              "action": "replace",
              "target": [
                "op:stick-solder"
              ],
              "description": "Solder step becomes a connector mate"
            },
            {
              "action": "modify",
              "target": [
                "part:stick-module"
              ],
              "description": "Module with flex tail, +0.12 USD"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "monte-carlo",
            "created": "2026-10-30"
          },
          "scores": {
            "yield": {
              "rty": {
                "value": 0.936,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "interval": [
                  0.92,
                  0.95
                ],
                "confidence": "low"
              }
            },
            "throughput": {
              "cycle_time": {
                "value": 28,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              },
              "headcount": 11
            },
            "cost": {
              "cost_per_good_unit": {
                "value": 1.95,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              }
            },
            "experience": {
              "predicted_field_return_rate": {
                "value": 0.019,
                "origin": "estimated",
                "confidence": "low"
              }
            }
          },
          "pareto": {
            "on_frontier": true
          }
        },
        {
          "id": "var:preload-close",
          "name": "Preload fixture and tug test for the battery connector",
          "kind": "fixture-sequence",
          "base": "baseline",
          "description": "Closing fixture holds the connector down; a 2 N tug test after mating",
          "addresses": [
            "iss:battery-unseat",
            "fm:battery-unseat"
          ],
          "changes": [
            {
              "action": "modify",
              "target": [
                "op:close"
              ],
              "description": "Preload pad in the closing fixture"
            },
            {
              "action": "modify",
              "target": [
                "op:battery-mate"
              ],
              "description": "Add tug test"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "mujoco",
            "created": "2026-10-30"
          },
          "scores": {
            "yield": {
              "rty": {
                "value": 0.932,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "interval": [
                  0.915,
                  0.945
                ],
                "confidence": "low"
              }
            },
            "throughput": {
              "cycle_time": {
                "value": 31,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              },
              "headcount": 11
            },
            "cost": {
              "cost_per_good_unit": {
                "value": 1.96,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              }
            }
          },
          "pareto": {
            "on_frontier": false,
            "dominated_by": [
              "var:stick-connector"
            ]
          }
        },
        {
          "id": "var:gap-tight",
          "name": "Tighten the shoulder gap to 0.10 mm",
          "kind": "design-change",
          "base": "baseline",
          "description": "Industrial design asks for a tighter, more premium seam",
          "design_intent": {
            "targets": [
              {
                "characteristic": "gap",
                "where": [
                  "part:top-shell"
                ],
                "target": {
                  "value": 0.1,
                  "unit": "mm",
                  "source": "inferred",
                  "confidence": "low"
                },
                "upper": {
                  "value": 0.15,
                  "unit": "mm",
                  "source": "inferred",
                  "confidence": "low"
                },
                "priority": "should",
                "owner": "industrial-design"
              }
            ]
          },
          "changes": [
            {
              "action": "modify",
              "target": [
                "part:top-shell"
              ],
              "description": "Tighter tool tolerance and a cooling change on the shoulder wall"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "monte-carlo",
            "created": "2026-10-30"
          },
          "scores": {
            "yield": {
              "rty": {
                "value": 0.874,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "interval": [
                  0.85,
                  0.895
                ],
                "confidence": "low"
              }
            },
            "throughput": {
              "cycle_time": {
                "value": 30,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              }
            },
            "cost": {
              "cost_per_good_unit": {
                "value": 2.6,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              }
            },
            "experience": {
              "gap_flush_consistency": {
                "value": 0.03,
                "unit": "mm, 1 sigma",
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              },
              "cosmetic_defect_rate": {
                "value": 0.061,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "confidence": "low"
              }
            }
          },
          "pareto": {
            "on_frontier": false,
            "dominated_by": [
              "baseline",
              "var:split-t1",
              "var:stick-connector"
            ]
          }
        },
        {
          "id": "var:connector-and-preload",
          "name": "Stick connector plus battery preload",
          "kind": "mixed",
          "base": "baseline",
          "description": "Both fixes together",
          "addresses": [
            "iss:stick-drift-flux",
            "iss:battery-unseat"
          ],
          "changes": [
            {
              "action": "replace",
              "target": [
                "op:stick-solder"
              ],
              "description": "As var:stick-connector"
            },
            {
              "action": "modify",
              "target": [
                "op:close",
                "op:battery-mate"
              ],
              "description": "As var:preload-close"
            }
          ],
          "generated_by": {
            "method": "agent",
            "engine": "monte-carlo",
            "created": "2026-10-31"
          },
          "scores": {
            "yield": {
              "rty": {
                "value": 0.947,
                "origin": "simulated",
                "engine": "monte-carlo",
                "runs": 20000,
                "interval": [
                  0.93,
                  0.96
                ],
                "confidence": "low"
              }
            },
            "throughput": {
              "cycle_time": {
                "value": 31,
                "unit": "s",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              },
              "headcount": 11
            },
            "cost": {
              "cost_per_good_unit": {
                "value": 1.99,
                "unit": "USD",
                "origin": "estimated",
                "engine": "analytic",
                "confidence": "low"
              }
            },
            "ramp": {
              "changes_needed": {
                "value": 3,
                "origin": "estimated",
                "confidence": "medium"
              }
            }
          },
          "pareto": {
            "on_frontier": true
          }
        }
      ],
      "recommended": {
        "variant": "var:connector-and-preload",
        "rationale": "Highest simulated yield, and it closes the two largest failure modes, which together make up 42% of fallout",
        "tradeoffs": "0.07 USD more per good unit and 1 s slower than baseline, still inside the 36 s takt; T1 stays the bottleneck"
      },
      "tradeoffs": [
        {
          "id": "tr:gap-tighten",
          "characteristic": "gap",
          "from": {
            "value": 0.2,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low"
          },
          "to": {
            "value": 0.1,
            "unit": "mm",
            "source": "inferred",
            "confidence": "low"
          },
          "variant": "var:gap-tight",
          "against": "baseline",
          "yield_delta": {
            "value": -0.048,
            "unit": "RTY",
            "origin": "simulated",
            "engine": "monte-carlo",
            "runs": 20000,
            "confidence": "low"
          },
          "cost_per_unit_delta": {
            "value": 0.68,
            "unit": "USD",
            "origin": "estimated",
            "engine": "analytic",
            "confidence": "low"
          },
          "other_deltas": {
            "experience.cosmetic_defect_rate": {
              "value": 0.044,
              "origin": "simulated",
              "engine": "monte-carlo",
              "runs": 20000,
              "confidence": "low"
            }
          },
          "experience_effect": "A tighter seam that reads as more premium, for about 5 points of yield and 0.68 USD a unit",
          "decision": {
            "status": "rejected",
            "by": "product (fictional)",
            "on": "2026-10-31",
            "note": "Not worth the yield at this price point"
          }
        }
      ],
      "engine_notes": "Yield and failure shares come from Monte Carlo over the measured spreads and MuJoCo drop runs. Cycle time and line balance are estimates until the discrete-event simulator exists."
    },
    "ext": {
      "battery": {
        "cells": [
          {
            "part": "part:battery",
            "chemistry": {
              "value": "Li-ion polymer",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:markings"
              ]
            },
            "form": "pouch",
            "nominal_voltage_v": {
              "value": 3.7,
              "unit": "V",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:markings"
              ]
            },
            "capacity_mah": {
              "value": 600,
              "unit": "mAh",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:markings"
              ]
            },
            "protection_circuit": {
              "value": "single-cell protection board on the tab",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            }
          }
        ]
      },
      "controller": {
        "inputs": [
          {
            "id": "in:stick-l",
            "kind": "stick",
            "part": "part:stick-module",
            "sensing": {
              "value": "potentiometric, two axes",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log",
                "src:ct-run-1"
              ]
            }
          },
          {
            "id": "in:btn-a",
            "kind": "button",
            "part": "part:button-cap",
            "sensing": {
              "value": "carbon pill on silicone dome",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "actuation_force_gf": {
              "value": 184,
              "unit": "gf",
              "source": "measured",
              "confidence": "medium",
              "evidence": [
                "src:eol-sample"
              ]
            }
          },
          {
            "id": "in:btn-b",
            "kind": "button",
            "part": "part:button-cap",
            "sensing": {
              "value": "carbon pill on silicone dome",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "actuation_force_gf": {
              "value": 179,
              "unit": "gf",
              "source": "measured",
              "confidence": "medium",
              "evidence": [
                "src:eol-sample"
              ]
            }
          },
          {
            "id": "in:btn-x",
            "kind": "button",
            "part": "part:button-cap",
            "sensing": {
              "value": "carbon pill on silicone dome",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "actuation_force_gf": {
              "value": 189,
              "unit": "gf",
              "source": "measured",
              "confidence": "medium",
              "evidence": [
                "src:eol-sample"
              ]
            }
          },
          {
            "id": "in:btn-y",
            "kind": "button",
            "part": "part:button-cap",
            "sensing": {
              "value": "carbon pill on silicone dome",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            },
            "actuation_force_gf": {
              "value": 177,
              "unit": "gf",
              "source": "measured",
              "confidence": "medium",
              "evidence": [
                "src:eol-sample"
              ]
            }
          },
          {
            "id": "in:shoulder-l",
            "kind": "button",
            "part": "part:shoulder-button",
            "sensing": {
              "value": "tact switch on the PCBA",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            }
          },
          {
            "id": "in:shoulder-r",
            "kind": "button",
            "part": "part:shoulder-button",
            "sensing": {
              "value": "tact switch on the PCBA",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:teardown-log"
              ]
            }
          },
          {
            "id": "in:gyro",
            "kind": "gyro",
            "part": "part:imu",
            "sensing": {
              "value": "6-axis MEMS",
              "source": "observed",
              "confidence": "high",
              "evidence": [
                "src:markings"
              ]
            }
          }
        ],
        "haptics": {
          "value": "10 mm LRA, 170 Hz",
          "source": "observed",
          "confidence": "high",
          "evidence": [
            "src:teardown-log"
          ]
        }
      }
    }
  }
}