{
  "meta": {
    "revision": "Sourcing R1",
    "asOf": "2026-10-14",
    "baseline": "engineered,14 fresh trays,55 rail pieces,56.62m",
    "scope": "Full feeder plus one fresh-tray prototype. Prices are observed unsigned Amazon US/McMaster listing prices; no tax, freight, checkout or stock guarantee. USD.",
    "pricedSubtotal": 13660.3,
    "prototypePricedSubtotal": 1333.32,
    "unpricedLines": 43,
    "warning": "Procurement research, not a released manufacture or order package. Full dimensions, torque at speed, cold capacity, food-contact grades and mounts remain conditional.",
    "architecture": "29 stepper axes,2 serial bus gate servos,1 DC hatch actuator,1 peristaltic pump. Only one stepper axis moves at a time. Positive mechanical resting support required.",
    "loadCorrection": "The original0.30kg tray/cradle assumption does not suit the selected steel pan. Use provisional1.25kg tare plus0.45kg food. With400mm model COM this requires≈6.87N·m including2×factor and0.1N·m friction. Motor acceptance target≥8N·m at~4.2outputrpm, not yet measured."
  },
  "rows": [
    {
      "id": "F01",
      "group": "Frame",
      "item": "6575N406 rail: 55 pieces / 56.62 m",
      "qty": 1,
      "unit": "cut list",
      "pack": 1,
      "price": 2264.8,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/6575N406/",
      "status": "Catalog selection",
      "notes": "Full build:55 finished pieces at $0.40/cm for lengths ≥60 cm. Prototype:12 pieces,4×800+4×500+4×400 mm,6.8m; shorter cuts cost $0.48/cm, so prototype rail total is $300.80. Cut lengths await cooling/motor layout.",
      "spec": "40×40 mm; 8 mm slot; 2.5 mm cut increments",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "F02",
      "group": "Frame",
      "item": "5537T937 corner bracket with mounting hardware",
      "qty": 84,
      "unit": "each",
      "pack": 1,
      "price": 7.06,
      "prototypeQty": 24,
      "source": "https://www.mcmaster.com/5537T937/",
      "status": "Catalog selection",
      "notes": "Includes two M8×16 screw/nut fasteners per bracket. Do not add those again. 84 is model joint allowance; accessory brackets are separate.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "F03",
      "group": "Frame",
      "item": "6000N207 M6 self-aligning drop-in T-slot nuts",
      "qty": 200,
      "unit": "each",
      "pack": 4,
      "price": 5.49,
      "prototypeQty": 24,
      "source": "https://www.mcmaster.com/6000N207/",
      "status": "Catalog selection",
      "notes": "Allowance for mounts/panels; final hole schedule pending. Correct T-slot family. Replaces incompatible locking-slot 6266N15.",
      "spec": "4/pack; 30/40 mm single rails",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "F04",
      "group": "Frame",
      "item": "M6 stainless socket screws, washers, locking nuts",
      "qty": 200,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 24,
      "source": "https://www.mcmaster.com/products/socket-head-screws/",
      "status": "Select exact size",
      "notes": "Choose length from actual acrylic/washer/bracket stack. M6×16 is starting stack candidate, not released screw schedule. Count excludes included F02 fasteners.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "F05",
      "group": "Frame",
      "item": "Ground anchors and frame anchor brackets",
      "qty": 4,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/anchors/",
      "status": "Select exact size",
      "notes": "Substrate-specific anchors and purchased metal brackets; acrylic is not the anchor load path. No wheels in baseline.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "F06",
      "group": "Frame",
      "item": "Printed rail end caps and slot shields",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "Cut-piece ends and exposed food-zone slots. Existing SCAD is only a partial prototype library; cap geometry remains to draw.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M01",
      "group": "Fresh trays",
      "item": "Winco SPJP-204 half-size stainless pan",
      "qty": 14,
      "unit": "each",
      "pack": 1,
      "price": 23.63,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B00JCYTFW4",
      "status": "Prototype first",
      "notes": "Exterior 327.2×265.2×101.6 mm fits 340×400×110 tray envelope with cradle tolerance still to check. Actual tare required. Do not use bounding-box litres as food capacity.",
      "spec": "https://www.wincous.com/products/spjp-204",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M02",
      "group": "Fresh trays",
      "item": "ReliaBot stainless MGN12 800 mm rail + MGN12H block",
      "qty": 28,
      "unit": "sets",
      "pack": 1,
      "price": 59.99,
      "prototypeQty": 2,
      "source": "https://www.amazon.com/dp/B0FLDM98J8",
      "status": "Prototype first",
      "notes": "Two guides/tray. Seller block dimensions and mounting drawing required; model uses HIWIN reference 45.4×27×13 mm. Wet-condensation corrosion trial required.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M03",
      "group": "Fresh trays",
      "item": "STEPPERONLINE 17HS19-2004S1 slide motor",
      "qty": 14,
      "unit": "each",
      "pack": 1,
      "price": 14.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B00PNEQKC0",
      "status": "Prototype first",
      "notes": "42×42×48 mm,5 mm shaft,2A/phase,0.59 N·m HOLDING. Running design allowance 0.20 N·m is an assumption; bench test at 15 mm/s.",
      "spec": "https://www.omc-stepperonline.com/download/17HS19-2004S1.pdf",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M04",
      "group": "Tip drives",
      "item": "STEPPERONLINE 23HS22-2804S-PG15 geared motor",
      "qty": 15,
      "unit": "each",
      "pack": 1,
      "price": 72.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B00WAV0N5E",
      "status": "Prototype first",
      "notes": "14 tray tips +1 soak pan. 57×57×116 mm body,12 mm output,15.3:1,2.8A/phase, ~1.5 kg. Gearbox 30 N·m permissible is NOT running torque. Require ≥8 N·m measured at ≈4.2outputrpm for conservative revised load. Motor body/mount not integrated into 55 mm service bay.",
      "spec": "https://www.omc-stepperonline.com/nema-23-stepper-motor-bipolar-l-56mm-w-gear-ratio-15-1-planetary-gearbox-23hs22-2804s-pg15",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M05",
      "group": "Fresh trays",
      "item": "Zeelo GT2 6 mm belt kit,5 m +8 pulleys",
      "qty": 30,
      "unit": "m belt",
      "pack": 5,
      "price": 13.99,
      "prototypeQty": 1.8,
      "source": "https://www.amazon.com/dp/B07XG9JN5B",
      "status": "Prototype first",
      "notes": "6 kits gives 30m belt and 48 pulleys. Need 14 pulleys of 20T×5 mm bore; verify exact kit variation. ~1.8m/tray +4.8m spare. Do not also order a separate full pulley lot.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M06",
      "group": "Fresh trays",
      "item": "WINSINN GT2 20T 5 mm idler5-pack",
      "qty": 14,
      "unit": "each",
      "pack": 5,
      "price": 8.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B07BPGYX3G",
      "status": "Prototype first",
      "notes": "3 packs supplies 15. Mount on purchased 5 mm shoulder bolts; verify bearing bore/shoulder engagement.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M07",
      "group": "Pivots",
      "item": "608-2RS stainless bearings10-pack",
      "qty": 30,
      "unit": "each",
      "pack": 10,
      "price": 9.99,
      "prototypeQty": 2,
      "source": "https://www.amazon.com/dp/B0D3B6QGDC",
      "status": "Prototype first",
      "notes": "2/pivot×15. 8×22×7 mm. Listing 440C claim; check received bearing quality, press fit, shielding and condensation.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M08",
      "group": "Pivots",
      "item": "8 mm ×400 mm304 stainless rods16-pack",
      "qty": 15,
      "unit": "each",
      "pack": 16,
      "price": 49.49,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0FB3YDVM7",
      "status": "Prototype first",
      "notes": "Craft rod tolerance not confirmed for 608 fit. Prototype candidate only; substitute precision 8 mm purchased shaft if out of tolerance. Final shaft length depends on pan orientation, coupler and bearing locations. No custom metal turning.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M09",
      "group": "Pivots",
      "item": "8 mm split shaft collars6-pack",
      "qty": 30,
      "unit": "each",
      "pack": 6,
      "price": 9.39,
      "prototypeQty": 2,
      "source": "https://www.amazon.com/dp/B0FGX7KR9T",
      "status": "Prototype first",
      "notes": "Two/pivot;5 packs 30. Keep collars/bearing grease outside food path.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M10",
      "group": "Pivots",
      "item": "8 mm to12 mm rigid clamp coupler2-pack",
      "qty": 15,
      "unit": "each",
      "pack": 2,
      "price": 13.7,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0DJ6Q53LJ",
      "status": "Prototype first",
      "notes": "8 packs 16. Supplier torque rating and keyway/clamp engagement remain unverified. Do not cut motor shaft or assume a set screw alone carries the tray.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M11",
      "group": "Fresh trays",
      "item": "Printed pan cradles, bearing carriers and belt clamps",
      "qty": 14,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "Existing SCAD contains carrier/clamp/cradle-corner prototypes only. Full cradles, motor mounts, covers and positive resting supports need CAD and cold load testing.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M12",
      "group": "Fresh trays",
      "item": "6.35 mm acrylic carriage and guide-adapter parts",
      "qty": 14,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "fabrication/carriage-adapter-6.35mm.svg",
      "status": "Fabricate",
      "notes": "Laser cut. Existing adapter is provisional; add 28 guide-mount strips and revised motor plates. Raw acrylic counted underA01, not here.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M13",
      "group": "Fresh trays",
      "item": "M3 stainless fasteners for rail/block/printed mounts",
      "qty": 700,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 60,
      "source": "https://www.mcmaster.com/products/metric-screws/",
      "status": "Select exact size",
      "notes": "Planning allowance:336 rail fasteners(12/rail),112 block fasteners(4/block),252 other. Rail holes must be counted from received drawing; select 6/8/12/16 mm lengths to avoid bottoming block threads.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M14",
      "group": "Fresh trays",
      "item": "M4/M5 motor, idler and cover fasteners",
      "qty": 240,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 24,
      "source": "https://www.mcmaster.com/products/metric-screws/",
      "status": "Select exact size",
      "notes": "NEMA17 M3 pattern and geared motor hole pattern must follow drawings. This allowance covers idlers, brackets, guards and linkage hardware; split lengths after CAD.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M15",
      "group": "Fresh trays",
      "item": "R18 10×20 mm cable carrier,1 m",
      "qty": 14,
      "unit": "each",
      "pack": 1,
      "price": 13.89,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B09376Q64H",
      "status": "Prototype first",
      "notes": "1/tray. Route only moving tip-motor/sensor leads; minimum cable bend radius and all cable-chain sweeps remain to check.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "M16",
      "group": "Pivots",
      "item": "Positive resting stops/latches and bought springs",
      "qty": 15,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/products/spring-plungers/",
      "status": "Select exact size",
      "notes": "Required mechanical support with power removed. Gearbox not assumed self-locking. Printed cam/latch geometry must release with carriage motion, with purchased pins/springs; not yet drawn.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "M17",
      "group": "Fresh trays",
      "item": "Individual printed tray covers and acrylic panels",
      "qty": 14,
      "unit": "sets",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "Humidity and contamination covers; opening action currently unresolved. No separate lid motor assumed: requires passive cam linkage to be proven.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "H01",
      "group": "Outlet",
      "item": "Justech 12 V 100 mm 96 N mini linear hatch actuator",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 26.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0H7BWNM2T",
      "status": "Prototype first",
      "notes": "IP54 listing; dry protected mounting only.9.5 mm/s, built-in limits per listing to verify. Hatch geometry/stroke and obstruction force cutoff need bench validation.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "H02",
      "group": "Outlet",
      "item": "Purchased stainless hinges",
      "qty": 3,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/stainless-steel-hinges/",
      "status": "Select exact size",
      "notes": "Hatch 2 hinges +service door allowance 1; actual hinge knuckles and hardware outside food sweep.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "H03",
      "group": "Outlet",
      "item": "Purchased compression latches",
      "qty": 4,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/compression-latches/",
      "status": "Select exact size",
      "notes": "Service access doors; latch reach must include insulation/gasket stack.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "H04",
      "group": "Outlet",
      "item": "Silicone closed-cell gasket profile",
      "qty": 15,
      "unit": "m",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/silicone-foam/",
      "status": "Select exact size",
      "notes": "Door, hatch and panel seals allowance. Specify cold/wet, exterior suitable, documented grade for any food splash. Final section and compression gap pending.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "H05",
      "group": "Outlet",
      "item": "Printed hatch surround, guards and laser-cut skins",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "6.35 mm stiffeners,3.175 mm skins, purchased insulation. Protected pinch zone, detachable chute and cleanable food-contact surface.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "H06",
      "group": "Outlet",
      "item": "VEVOR 32×16 inch stainless griddle serving plate",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 82.9,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0F1WZXPF8",
      "status": "Prototype first",
      "notes": "812.8×406.4 mm nominal plate gives width over 740 mm chute span. Actual usable surface, lip height, handles and grease drain require inspection; front feeding access and drain plug unresolved. No heating appliance needed.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "H07",
      "group": "Outlet",
      "item": "Plate cradle, no-tool removal and drain plug",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "Printed support brackets with purchased food-contact drain plug if the selected plate has a drain; no flexible mat accessible to tortoise.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "P01",
      "group": "Pellets",
      "item": "Winco SPJL-604 1/6-size, 4-inch soaking pan",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 10.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B001VZ8RZ8",
      "status": "Prototype first",
      "notes": "Selected 25-gauge model differs from old SPJP-604 reference. Manufacturer exterior 177.8×163.5×101.6 mm. Measure inner taper/volume before using 932 mL estimate. No drain; tips after soak.",
      "spec": "https://www.wincous.com/products/spjl-604",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "P02",
      "group": "Pellets",
      "item": "Hiwonder HTD45H serial bus gate servo",
      "qty": 2,
      "unit": "each",
      "pack": 1,
      "price": 29.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0CB3T1P7Y",
      "status": "Prototype first",
      "notes": "Top/bottom pellet gates;9–12.6V,240°, UART.45 kg·cm is STALL. Gate friction/jam current must be measured; not tray actuators.",
      "spec": "https://www.hiwonder.com/products/htd-45h",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "P03",
      "group": "Pellets",
      "item": "Hiwonder/LewanSoul BusLinker V3 TTL interface",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 9.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0GTW7GR2L",
      "status": "Prototype first",
      "notes": "Serial bus servos need compatible half-duplex UART, not PCA9685 PWM. Verify voltage levels, power isolation and actual HTD protocol before connection.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "P04",
      "group": "Pellets",
      "item": "Purchased food-contact pellet hopper with sealed lid",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=food%20grade%20cereal%20dispenser%20hopper%20sealed%20lid",
      "status": "Select exact size",
      "notes": "Target ≥2L for seven chamber doses plus margin. Must mate to ≈65 mm metering throat without custom metal machining; exact hopper/flange not selected.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "P05",
      "group": "Pellets",
      "item": "Purchased food-contact acrylic dose tube",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/acrylic-tubing/",
      "status": "Select exact size",
      "notes": "Nominal 65 mm internal diameter×70 mm metering length is 232 mL. Select available tube then revise chamber; cannot assume a 65 mm exact catalogue bore. No printed food-contact hopper.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "P06",
      "group": "Pellets",
      "item": "Laser-cut6.35mm gate housing,3.175mm gates",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/cast-acrylic/",
      "status": "Fabricate",
      "notes": "Choose documented food-contact stock for gates. Printed exterior servo brackets and mechanical two-gate interlock; removable for cleaning.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "P07",
      "group": "Pellets",
      "item": "Printed soaking-pan cradle, stops and guards",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/printed-parts.scad",
      "status": "Fabricate",
      "notes": "15th geared motor/bearing/shaft set counted inM04, M07–10. CAD not released. Test water retention and complete wet-pellet release.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "W01",
      "group": "Water",
      "item": "Kamoer KCPA600 24 V peristaltic pump",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 69,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0B9XCPSSS",
      "status": "Prototype first",
      "notes": "180–520 mL/min listing;4mmID×7.2mmOD Norprene tubing. Do not assume supplied tube grade is drinking-water suitable. Need food-contact tubing validation and 24V current rating.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "W02",
      "group": "Water",
      "item": "Scepter 2.5 gallon food-grade opaque water can",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 38.2,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0157AHAG4",
      "status": "Prototype first",
      "notes": "~9.46L; original model uses 8L usable.200 mL/day dosing needs 1.4L/week; reserve excludes drinking water and cleaning. Keep tank below outlet to limit siphon risk.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "W03",
      "group": "Water",
      "item": "Documented food-contact pump tube and feed hose",
      "qty": 5,
      "unit": "m",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/food-grade-tubing/",
      "status": "Select exact size",
      "notes": "Pump head requires correct 4×7.2 mm tubing and fatigue rating; do not substitute 4×7 mm silicone without pump manufacturer approval. External feed hose size can use proper barbed adaptors.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "W04",
      "group": "Water",
      "item": "Food-contact barbs, clamps, tank cap and nozzle",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/food-grade-fittings/",
      "status": "Select exact size",
      "notes": "Nozzle above pan air gap; removable flushable feed. Purchased tank-cap pass-through, no drilled appliance shell. Detail depends on selected tubing.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "W05",
      "group": "Water",
      "item": "Independent maximum-run timer and pump power cutoff",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=24V%20one%20shot%20interval%20timer%20relay%20module",
      "status": "Select exact size",
      "notes": "Independent of ESP32. Set after measuring minimum/maximum flow and actual pan capacity; not just a software timer.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "W06",
      "group": "Water",
      "item": "External capacitive low-water sensor",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=non%20contact%20liquid%20level%20sensor%20XKC%20Y25",
      "status": "Select exact size",
      "notes": "Avoid unverified wetted float plastics. Must detect through selected opaque tank wall at 3.3V-safe interface.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "W07",
      "group": "Water",
      "item": "Leak detector and spill catch tray",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=water%20leak%20detection%20sensor%20wired%20module",
      "status": "Select exact size",
      "notes": "Leak cuts pump power; printed/laser-cut catch tray outside food path. Condensation runoff separate.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "E01",
      "group": "Controls",
      "item": "HiLetgo ESP32-WROOM32 development board",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 9.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0718T232Z",
      "status": "Listing confirmed",
      "notes": "One main controller; Wi-Fi range in outdoor cabinet to test. USB cable and stable 5V supply required. Optional spare not included.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E02",
      "group": "Controls",
      "item": "STEPPERONLINE DM542T stepper driver",
      "qty": 29,
      "unit": "each",
      "pack": 1,
      "price": 32.99,
      "prototypeQty": 2,
      "source": "https://www.amazon.com/dp/B06Y5VPSFN",
      "status": "Prototype first",
      "notes": "14 slide+15 tip axes.24V supply; set each phase current per motor/driver manual RMS/peak table. Opto STEP/DIR/ENABLE need properly buffered 5V current drive. Do not drive 29 optos in parallel from ESP32.",
      "spec": "https://www.omc-stepperonline.com/download/DM542T_V4.0.pdf",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E03",
      "group": "Controls",
      "item": "Waveshare MCP23017 IO expansion",
      "qty": 7,
      "unit": "each",
      "pack": 1,
      "price": 12.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B07P2H1NZG",
      "status": "Prototype first",
      "notes": "112 slow I/O:29 enables+56 fresh limits+2 soak+2 hatch+2 door+2 gate+1plate+1tank+1leak=96. Spare 16. Pulse generation from ESP32 hardware, not I2C. Keep I2C inside dry control cabinet.",
      "spec": "https://www.waveshare.com/mcp23017-io-expansion-board.htm",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E04",
      "group": "Controls",
      "item": "ULN2803A 8-channel driver modules, 3-pack",
      "qty": 6,
      "unit": "boards",
      "pack": 3,
      "price": 5.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0GD745BLL",
      "status": "Prototype first",
      "notes": "Preliminary opto-current buffer allowance 48 channels:29axis enables plus separately buffered STEP/DIR groups. Needs electrical design, input-current/pulse-width/thermal proof; not a released circuit.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E05",
      "group": "Controls",
      "item": "HiLetgoBTS7960 H-bridge module",
      "qty": 2,
      "unit": "each",
      "pack": 1,
      "price": 10.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B00WSN98DC",
      "status": "Prototype first",
      "notes": "1 hatch,1pump. Advertised 43A is not a usable continuous rating. Independent pump timer and flyback/transient protection still required; verify logic thresholds.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E06",
      "group": "Controls",
      "item": "DS18B20 waterproof temperature probes, 5-pack",
      "qty": 3,
      "unit": "each",
      "pack": 5,
      "price": 10.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B00M1PM55K",
      "status": "Prototype first",
      "notes": "Two independent cold positions +ambient. Independent alarm/logger below. Stainless sheath food suitability not established; air probes only.4.7kΩ pullup needed.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E07",
      "group": "Controls",
      "item": "KW12-3 roller microswitch, 10-pack",
      "qty": 64,
      "unit": "each",
      "pack": 10,
      "price": 5.99,
      "prototypeQty": 4,
      "source": "https://www.amazon.com/dp/B07X142VGC",
      "status": "Prototype first",
      "notes": "56 fresh(4/tray)+2 soak+2 hatch+2doors+2gates.7 packs 70. Bare switches are NOT waterproof. Protected prototype only; production needs sealed equivalent or validated condensation isolation. Wire NC with broken-wire fault detection.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "E08",
      "group": "Controls",
      "item": "Protected plate-present switch/bracket",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/limit-switches/",
      "status": "Select exact size",
      "notes": "Physical plate presence input plus debounce; choose sealed device after plate cradle layout.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "E09",
      "group": "Controls",
      "item": "DS3231 RTC module and correct backup cell",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=Adafruit%203013%20DS3231",
      "status": "Select exact size",
      "notes": "Adafruit 3013 specification is nonchargingCR1220. Amazon exact seller/offer not verified. Do not install nonrechargeableCR2032 into a generic charging RTC module.",
      "spec": "https://www.adafruit.com/product/3013",
      "priceBasis": "Not quoted"
    },
    {
      "id": "E10",
      "group": "Controls",
      "item": "Pullups, transient protection, terminals and carrier board",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=resistors%20capacitors%20perfboard%20screw%20terminal%20assortment",
      "status": "Select exact size",
      "notes": "4.7k pullups, input filtering, opto buffers, hardware power-up disable and UART level shifting. Wiring schematic still pending; no custom PCB required.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "E11",
      "group": "Controls",
      "item": "Independent cold temperature alarm/logger",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=refrigerator%20temperature%20data%20logger%20alarm",
      "status": "Select exact size",
      "notes": "Independent battery-backed time history; alert does not depend only on feeder ESP32/Wi-Fi.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "D01",
      "group": "DC power",
      "item": "Mean Well GST280A24-C6P 24 V 280 W supply",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 97.69,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B019RC7RWA",
      "status": "Prototype first",
      "notes": "24V11.67A brick. Enable at most one moving axis; latch/rest supports essential for disabled axes. Full 29-axis simultaneous operation is NOT budgeted.",
      "spec": "https://www.meanwell.com/Upload/PDF/gst280a/gst280a-spec.pdf",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D02",
      "group": "DC power",
      "item": "MatchingC6P DC harness and IEC mains lead",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=GST280A%20C6P%20mating%20cable%20IEC%20C13",
      "status": "Select exact size",
      "notes": "C6P output is 6 pin, not barrel. Verify pinout, wire gauge, strain relief and current sharing; no bare improvised connector.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "D03",
      "group": "DC power",
      "item": "DROK 9–36 V to 12 V 10 A buck/boost",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 29.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0B6VGXRZK",
      "status": "Prototype first",
      "notes": "Supplies 2 gate servos and hatch. Actual current budget and fuse ratings await stall tests.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D04",
      "group": "DC power",
      "item": "PlusRoc 24 V to 5 V 5 A converters, 2-pack",
      "qty": 1,
      "unit": "each",
      "pack": 2,
      "price": 14.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0FYNCSV2Z",
      "status": "Prototype first",
      "notes": "One installed, one spare from pack. Independent fused 5V logic rail; do not backfeed USB programmer.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D05",
      "group": "DC power",
      "item": "DaierTek 12-way 24 V blade fuse block",
      "qty": 3,
      "unit": "each",
      "pack": 1,
      "price": 15.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0CGT91KTR",
      "status": "Prototype first",
      "notes": "36branch positions allows 29 drivers plus auxiliaries. Match ratings to conductors, not optimistic module ratings; include actual blade fuses separately.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D06",
      "group": "DC power",
      "item": "Main/branch DC-rated fuses and fuseholders",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/products/dc-fuses/",
      "status": "Select exact size",
      "notes": "Motor, converter, pump, servo and harness protection. Final currents after measured loads.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "D07",
      "group": "DC power",
      "item": "BAOMAIN 22 mm 2NC latching stop button",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 7.79,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0CPSBHQRW",
      "status": "Prototype first",
      "notes": "Use low-current control circuit for DC-rated power relay. Published AC contact rating does not authorize switching full 24V motor bus directly. Manual restart required.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D08",
      "group": "DC power",
      "item": "DC-rated master power relay/contactor",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/products/dc-relays/",
      "status": "Select exact size",
      "notes": "Normally de-energized actuator power. Size for 24V bus current/inrush; stop button and controller watchdog must independently remove coil power.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "D09",
      "group": "DC power",
      "item": "DEWENWILS 3 ft 12/3 outdoor GFCI cord",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 25.49,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B08G4HNCR1",
      "status": "Listing confirmed",
      "notes": "UL listing claimed by seller; inspect received mark. Use appropriately installed outdoor receptacle and weather-protected plug connections.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "D10",
      "group": "DC power",
      "item": "Sheltered power strip, cable inlet and cord protection",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=outdoor%20cord%20connection%20weatherproof%20enclosure%20power%20strip",
      "status": "Select exact size",
      "notes": "Keep all household mains equipment dry and outside food/cold zone. Electronics are low voltage. Cooling branch and Anker transfer/inrush remain to validate.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "D11",
      "group": "DC power",
      "item": "Existing Anker backup and dry ventilated shelter",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=Anker%20SOLIX%20UPS%20portable%20power%20station",
      "status": "Select exact size",
      "notes": "Use existing battery if adequate. Exact model not given, no new battery selected/priced. Compressor startup, pass-through and GFCI behavior must be checked;4.4h old model estimate is not a promise for AC package.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "B01",
      "group": "Enclosures",
      "item": "SAIPWELL 24×20×10 inch stainless control enclosure",
      "qty": 2,
      "unit": "each",
      "pack": 1,
      "price": 267.99,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0H4Z58XHH",
      "status": "Prototype first",
      "notes": "Two dry driver cabinets preliminary.29DM542T drivers plus wiring/heat dissipation require panel-layout proof; boxes/battery/AC may protrude beyond approved frame envelope. Metal enclosure needs bonding and RF antenna solution.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "B02",
      "group": "Enclosures",
      "item": "Dry prototype electronics enclosure",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=IP65%20ABS%20electronics%20junction%20box%20300%20200%20150",
      "status": "Select exact size",
      "notes": "Small box for one-tray trial; full quantity 1 can serve logic compartment. Exact board clearance and gland layout pending.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "B03",
      "group": "Enclosures",
      "item": "Cable glands, junction terminals, DIN carriers and breather",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/products/cable-glands/",
      "status": "Select exact size",
      "notes": "Purchased compression glands matched to actual cable OD; shielded service connectors and drip loops. Breather/heat path must preserve weather rating.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "B04",
      "group": "Enclosures",
      "item": "Flexible motor wire, sensor cable and ferrules",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=flexible%20shielded%20stepper%20cable%204%20core%2020%20awg",
      "status": "Select exact size",
      "notes": "Planning 100m motor wire+100m sensor cable; actual cut list pending harness routing. Drag-chain-rated moving sections, separation from motor power and filtering for long sensor leads.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "B05",
      "group": "Enclosures",
      "item": "Protective loom, heat shrink and removable connectors",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/s?k=waterproof%20connector%20ferrule%20heat%20shrink%20kit",
      "status": "Select exact size",
      "notes": "Serviceable connectors per tray and utilities; pin ratings must meet motor current. No dupont jumpers as final motor wiring.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "A01",
      "group": "Fabrication stock",
      "item": "8560K435 1/4 inch cast acrylic, 24×48 inch",
      "qty": 8,
      "unit": "sheets",
      "pack": 1,
      "price": 145.74,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/8560K435/",
      "status": "Catalog selection",
      "notes": "Planning area 5.95m²; carriage/guide adapters, gate frames and hatch stiffeners. Quantity allowance, not nested cuts. Nominal 6.35 mm thickness tolerance−1.016/+0.508 mm; measure actual material before slots/spacers. FDA-standard stock per catalogue; finished food-contact assembly still needs cleaning validation.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "A02",
      "group": "Fabrication stock",
      "item": "8560K262 1/8 inch cast acrylic, 24×48 inch",
      "qty": 40,
      "unit": "sheets",
      "pack": 1,
      "price": 70.99,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/8560K262/",
      "status": "Catalog selection",
      "notes": "Planning 29.73m² for inner/outer skins, lids, guards and waste; not a nested cut quantity. Modular seams supported by 40 mm rails. Nominal 3.175 mm tolerance−0.635/+0.381 mm; account for actual thickness. FDA-standard stock per catalogue.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "A03",
      "group": "Fabrication stock",
      "item": "eSUN PETG 1.75 mm black filament, 1 kg",
      "qty": 12,
      "unit": "kg",
      "pack": 1,
      "price": 13.99,
      "prototypeQty": 1,
      "source": "https://www.amazon.com/dp/B0BN4Y1G2S",
      "status": "Listing confirmed",
      "notes": "Planning allowance for 14 cradles, mounts, guards and failed iterations. Keep printed parts outside direct food surfaces; outdoor UV/creep/temperature tests pending.",
      "spec": "",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "A04",
      "group": "Fabrication stock",
      "item": "Purchased inserts, spacers, dowel pins and springs",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 1,
      "source": "https://www.mcmaster.com/products/threaded-inserts/",
      "status": "Select exact size",
      "notes": "Exact counts follow CAD. Acrylic carries clamped bearing loads with washers/spacers; no highly stressed threaded acrylic joints.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C01",
      "group": "Cooling",
      "item": "Genuine CoolBot Gen6 controller",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B07T32HF9H",
      "status": "Cooling hold",
      "notes": "Amazon listing confirmed, no displayed price; manufacturer $399 reference is NOT Amazon quote. Confirm exact AC compatibility and authentic seller. No generic-controller substitution.",
      "spec": "https://www.storeitcold.com/product/coolbot/",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C02",
      "group": "Cooling",
      "item": "LG LW8024R 8000 BTU window AC",
      "qty": 1,
      "unit": "each",
      "pack": 1,
      "price": 295.47,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/dp/B0D9HRZ91W",
      "status": "Cooling hold",
      "notes": "Exact listing verified; digital controls and auto-restart. Confirm model withCoolBot compatibility guide before ordering. 492W×421D×313Hmm nominal body, exterior projection/vent clearances and separate support required.",
      "spec": "https://www.lg.com/us/air-conditioners/lg-lw8024r-window-air-conditioner",
      "priceBasis": "Observed listing, 2026-10-14"
    },
    {
      "id": "C03",
      "group": "Cooling",
      "item": "Closed-cell insulation sufficient forR25",
      "qty": 14,
      "unit": "m²",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=polyisocyanurate%20rigid%20foam%20insulation%20board",
      "status": "Cooling hold",
      "notes": "Purchased boards only. Manufacturer recommendsR25 all six faces.50 mm model shell cannot be assumed adequate.≥100 mm is preliminary, material-dependent; would change frame/internal layout. No foam laser cutting.",
      "spec": "https://www.storeitcold.com/wp-content/uploads/2025/12/Insulation-Guide.pdf",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C04",
      "group": "Cooling",
      "item": "Foil vapor-barrier tape and compatible sealant",
      "qty": 1,
      "unit": "lot",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=foil%20vapor%20barrier%20tape%20cooler%20sealant%20food%20safe",
      "status": "Select exact size",
      "notes": "Seal warm-side vapor barrier, panel seams and removable access seals. Adhesive suitability for chosen foam/acrylic and condensation must be checked.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C05",
      "group": "Cooling",
      "item": "AC purchased support brackets, weather hood and guards",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=window%20air%20conditioner%20support%20bracket%20outdoor%20rain%20cover",
      "status": "Cooling hold",
      "notes": "Do not obstruct condenser intake/exhaust. No refrigerant-line work or appliance-shell drilling. Need frame-mounted support and drainage plan.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C06",
      "group": "Cooling",
      "item": "Condensate drain tray, hose and trapped outlet",
      "qty": 1,
      "unit": "set",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.mcmaster.com/products/drain-pans/",
      "status": "Select exact size",
      "notes": "Keep condensate separate from water dose/food; bought tray or laser-cut supported shell. Drain must not create pest entry or wet electrical path.",
      "spec": "",
      "priceBasis": "Not quoted"
    },
    {
      "id": "C07",
      "group": "Cooling",
      "item": "Cold air circulation fans and protected wiring",
      "qty": 2,
      "unit": "each",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "https://www.amazon.com/s?k=24V%20waterproof%20brushless%20fan%20IP67",
      "status": "Select exact size",
      "notes": "Estimate only; select after cooling airflow layout. Food-zone fan guards need cleanable purchased/printed surfaces. Fan heat not yet in thermal estimate.",
      "spec": "",
      "priceBasis": "Not quoted"
    }
  ],
  "cuts": [
    {
      "name": "Outer vertical post",
      "count": 4,
      "length": 2490
    },
    {
      "name": "Outer width crossmember",
      "count": 6,
      "length": 950
    },
    {
      "name": "Outer depth crossmember",
      "count": 6,
      "length": 1310
    },
    {
      "name": "Cold rack vertical post",
      "count": 4,
      "length": 1240
    },
    {
      "name": "Cantilever guide-support rail",
      "count": 21,
      "length": 800
    },
    {
      "name": "Rack crossmember",
      "count": 14,
      "length": 810
    }
  ]
}