{
  "revision": "R4 cohesive compact cabinet",
  "width": 1550,
  "depth": 1540,
  "height": 1800,
  "minX": -575,
  "maxX": 975,
  "back": -840,
  "front": 700,
  "cold": {
    "innerX": 475,
    "back": -360,
    "front": 640,
    "ceiling": 1701
  },
  "tray": {
    "width": 327.2,
    "depth": 265.2,
    "height": 101.6,
    "cradleW": 340,
    "cradleD": 300,
    "centreZ": 150,
    "pivotZ": 355,
    "originZ": -320,
    "base": 360,
    "pitch": 150,
    "bankX": 210,
    "stroke": 350,
    "angle": 110
  },
  "slide": {
    "length": 350,
    "travel": 356,
    "height": 45.7,
    "thickness": 12.7,
    "x": 197.5,
    "y": -60
  },
  "utility": {
    "x": 775,
    "back": -410,
    "partitionZ": 250,
    "front": 580
  },
  "hopper": {
    "width": 170,
    "depth": 160,
    "height": 180,
    "targetLiters": 2,
    "x": 775,
    "y": 1250,
    "z": 450
  },
  "comparison": {
    "width": 1900,
    "depth": 3210,
    "height": 2490
  },
  "status": "Packaging prototype. Tray and hopper sizes retained; no new whole-head or two-gallon requirements.",
  "sweep": {
    "top": 1632.248567060099,
    "front": 611.6627244086342,
    "back": 30,
    "roofGap": 68.75143293990095,
    "frontGap": 28.337275591365824,
    "storedCoverGap": 63
  },
  "frameCuts": [
    {
      "name": "Cabinet full-height uprights",
      "count": 6,
      "length": 1800
    },
    {
      "name": "Main width members",
      "count": 6,
      "length": 1070
    },
    {
      "name": "Main depth members",
      "count": 6,
      "length": 1460
    },
    {
      "name": "Utility width members",
      "count": 6,
      "length": 360
    },
    {
      "name": "Utility depth members",
      "count": 3,
      "length": 1460
    },
    {
      "name": "Stored-rack uprights",
      "count": 4,
      "length": 1240
    },
    {
      "name": "Stored-rack rear crossmembers",
      "count": 7,
      "length": 840
    },
    {
      "name": "Stored-rack side bearers",
      "count": 14,
      "length": 300
    },
    {
      "name": "Preparation uprights",
      "count": 4,
      "length": 520
    },
    {
      "name": "Preparation crossmembers / bridge",
      "count": 5,
      "length": 850
    },
    {
      "name": "Preparation depth members",
      "count": 4,
      "length": 200
    }
  ],
  "parts": [
    {
      "id": "R401",
      "item": "Compact telescopic slide pair",
      "qty": 14,
      "spec": "350 mm closed / 356 mm rated travel; command 350 mm",
      "source": "https://www.amazon.com/s?k=Accuride+3832+14+inch+drawer+slides",
      "notes": "Accuride 3832E14 dimensional reference. Side mount only, 12.7 mm +0.8/-0 per side, 45.7 mm high. Weather-resistant variant and seller SKU remain to select. Replaces R1 M02; no MGN rails in R4. Catalogue furniture load rating is not robot acceptance.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    },
    {
      "id": "R402",
      "item": "Front-lip pivot cradle / inward motor mount",
      "qty": 14,
      "spec": "340 × 300 mm cradle; pivot Z355 mm",
      "source": "fabrication/r4/front-pivot-cradle.scad",
      "notes": "Same purchased pan and geared motor. Front pivot lets the rear of the pan rise in a clear forward corridor. Motor body is ahead of the pan and inside the bank envelope. Printed fork, positive parking stop, shaft engagement, stiffness and torque require physical validation.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    },
    {
      "id": "R403",
      "item": "Short pivot shaft stubs",
      "qty": 28,
      "spec": "8 mm nominal × 50 mm candidate",
      "source": "https://www.mcmaster.com/products/dowel-pins/diameter~8-mm/",
      "notes": "Two short 8 mm shafts per tray replace the long through-shaft to avoid passing through the motor body. Exact undersize tolerance, material, SKU and axial retention remain to select.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    },
    {
      "id": "R404",
      "item": "Segmented cabinet fascia / rounded corner kit",
      "qty": 1,
      "spec": "R25 outer edges; segments ≤200 mm",
      "source": "fabrication/r4/cabinet-print-kit.scad",
      "notes": "Printed framing covers, captive handles and 3 mm panel reveals unify the cabinet. Non-food-contact prototype. UV, heat, creep, inserts and wind loads require validation.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    },
    {
      "id": "R405",
      "item": "Marked refill interfaces / label set",
      "qty": 1,
      "spec": "01 greens · 02 produce · 03 dry pellets · 04 water",
      "source": "fabrication/r4/refill-labels.svg",
      "notes": "Text plus colour; numbered 1–7 portions. Exterior refill hatch, water drawer and tool-only electrical service are distinct. Labels and simulated interlocks do not constitute working hardware controls.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    },
    {
      "id": "R406",
      "item": "Integrated cabinet skins / partitions",
      "qty": 1,
      "spec": "1550 W × 1540 D × 1800 H mm envelope",
      "source": "cabinet-design.html",
      "notes": "1/8 inch acrylic skins, 1/4 inch supported shelves, purchased insulation / opaque facing, printed supported seams. Transparent inspection mode removes insulation; closed mode shows the intended exterior. Exact seams, gaskets, thermal stack and panel nesting remain open.",
      "group": "Cabinet R4",
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "status": "R4 candidate / verify before ordering",
      "priceBasis": "Unquoted revision"
    }
  ],
  "guards": [
    {
      "id": "G01",
      "group": "Eating-area guards R4",
      "item": "Rounded plate surround / handle enclosure",
      "qty": 1,
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/feeding-guards.scad",
      "status": "Prototype / fit verification",
      "notes": "Rigid segmented printed surround covers the steel rim, both handles and support corners. Food opening 770 × 364 mm, R45 corners. Concealed underside retention; no exposed screw heads or loose push-on edge trim. Print joints must be flush, sealed and retained. PETG is a prototype, not a proven bite-resistant finished material.",
      "spec": "1000 × 580 mm; R95 outer corners; R12 contact edges",
      "priceBasis": "Unquoted fabrication concept"
    },
    {
      "id": "G02",
      "group": "Eating-area guards R4",
      "item": "Captured acrylic plate deck",
      "qty": 1,
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/feeding-deck-6.35mm.svg",
      "status": "Prototype / fit verification",
      "notes": "Laser-cut deck is entirely captured beneath the rigid surround. The stainless plate sits on concealed printed risers; all acrylic edges and fasteners are inaccessible from the eating side. Rear-only release after feeder power isolation. Load, attachment and pull-off validation remain open.",
      "spec": "940 × 520 × 6.35 mm; R70 corners",
      "priceBasis": "Unquoted fabrication concept"
    },
    {
      "id": "G03",
      "group": "Eating-area guards R4",
      "item": "Rounded rear preparation shield",
      "qty": 1,
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/rear-shield-6.35mm.svg",
      "status": "Prototype / fit verification",
      "notes": "Fixed transparent shield stays behind the plate. Encapsulated panel edges; rounded, recessed food outlet. This is a separation barrier, not a validated tortoise reach exclusion. Check with an actual head/neck template before animal use.",
      "spec": "960 × 360 × 6.35 mm; R60 panel corners / R15 guard",
      "priceBasis": "Unquoted fabrication concept"
    },
    {
      "id": "G04",
      "group": "Eating-area guards R4",
      "item": "Rounded chute nose / outlet edge cover",
      "qty": 1,
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/feeding-guards.scad",
      "status": "Prototype / fit verification",
      "notes": "Printed backing and a rounded encapsulated edge protect the chute lip; the final food-contact liner / smooth finish remains to select and test. All solid outlet geometry ends behind the plate footprint. No moving flap or overhead arm above the eating surface.",
      "spec": "740 mm span; R12 terminal nose",
      "priceBasis": "Unquoted fabrication concept"
    },
    {
      "id": "G05",
      "group": "Eating-area guards R4",
      "item": "Concealed deck retention / underside covers",
      "qty": 1,
      "unit": "assembly",
      "pack": 1,
      "price": null,
      "prototypeQty": 0,
      "source": "fabrication/feeding-guards.scad",
      "status": "Prototype / fit verification",
      "notes": "M6 hardware follows the existing McMaster F03/F04 family. Print captured insert housings and tool-access covers below the deck. Covers must require tools and remain captive; no exposed caps, screws or detachable trim near the tortoise. Verify actual stack before selecting screw length.",
      "spec": "16 M6 positions; candidate fastener stack only",
      "priceBasis": "Unquoted fabrication concept"
    }
  ]
}
