{
  "Version": "1.0",
  "_comment": "Keyence machine-app manifest, imaging-time only. Consumed by 09-Setup-Keyence.ps1, reading from the in-repo shopfloor-setup/Keyence/ dir xcopied by startnet.cmd. Ongoing enforcement is handled separately by GE-Enforce reading keyence/manifest.json from the tsgwp00525 share. Each entry has an InstallerRoot-relative 'Installer' path plus standard detection. The 'Type' field is MSI, EXE, or INF: INF invokes pnputil /add-driver /install. When releasing a new VR-6000 version, update the Installer path + DetectionValue here AND on the share manifest.",
  "Applications": [
    {
      "_comment": "VR-6000 Series Software - main Keyence microscope/profilometer control app. Extracted from Keyence6000.exe (Inno Setup wrapper around an InstallShield 2019 MSI). Silent install works fine with /qn + REBOOT=ReallySuppress as long as you bypass the Inno wrapper - the wrapper's [Run] entry calls the bundled InstallShield Setup.exe without silent flags which hangs in session 0.",
      "Name": "VR-6000 Series Software",
      "Installer": "installers\\VR-6000 Series Software.msi",
      "Type": "MSI",
      "InstallArgs": "/qn /norestart ALLUSERS=1 REBOOT=ReallySuppress",
      "DetectionMethod": "Registry",
      "DetectionPath": "HKLM:\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\{058E7194-BDF8-4FA2-9D69-978BB0F25214}",
      "DetectionName": "DisplayVersion",
      "DetectionValue": "4.3.7"
    },
    {
      "_comment": "KEYENCE VR Series USB driver (WinUSB-based). Pulled from DriverStore after a full interactive install because dpinst.exe in the Inno wrapper needs GUI confirmation. pnputil /add-driver /install stages the INF + cat + co-installer DLLs to the Windows DriverStore; if a physical VR device is plugged in, Windows binds it immediately. Detection checks 'pnputil /enum-drivers' output for the INF filename - this matches regardless of driver version so updates (new INF with same basename) won't false-skip.",
      "Name": "KEYENCE VR Series USB Driver",
      "Installer": "drivers\\keyence_vr_series.inf",
      "Type": "INF",
      "DetectionMethod": "pnputil",
      "DetectionPattern": "keyence_vr_series\\.inf"
    }
  ]
}
