{
 "_about": "Threaded anchors are M3 square nuts, never heat-set inserts. Parts list per mechanism for the print-ready version in print/ (the 3D model shows the same parts). kind: printed | box (printed with the box) | lid (printed with the lid) | buy | seal. stl: files in print/NN-id/ (box and lid features are in the test coupons). shop: item ids in data/shopping.json. model: part names in previews/models/<id>.glb (empty = not in the 3D model).",
 "perimeter-band-clamp": {
  "per": "closure",
  "parts": [
   {
    "part": "Container with V-flange",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upright; the flange has a seal groove and a raised land that the lid lands on (the hard stop)",
    "model": [
     "body"
    ],
    "stl": [
     "container.stl"
    ]
   },
   {
    "part": "Lid with V-flange",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; flange ring 8.5 × 6.5 mm in section",
    "model": [
     "lid"
    ],
    "stl": [
     "lid.stl"
    ]
   },
   {
    "part": "Seal ring",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in the flange groove; the band squeezes it 0.8 mm",
    "model": [
     "tpu_ring"
    ],
    "stl": [
     "seal-ring.stl"
    ]
   },
   {
    "part": "Band clamp",
    "qty": "1",
    "kind": "buy",
    "spec": "Stainless band clamp for about 120 mm: ideally a constant-tension T-bolt clamp (a spring keeps the band tight as the seal creeps); a worm-drive hose clamp works for a test",
    "model": [
     "v_band",
     "t_bolt",
     "spring",
     "washer",
     "nut"
    ],
    "shop": [
     "band_clamp"
    ]
   }
  ]
 },
 "cam-lever-steel-stud": {
  "per": "latch",
  "parts": [
   {
    "part": "Hinge bracket",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears 7 mm thick, 5.2 mm hinge bore",
    "model": [
     "bracket"
    ],
    "stl": [
     "bracket.stl"
    ]
   },
   {
    "part": "Cam lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side (pin axis vertical) with supports under the upper disc, 100 % infill; 4.2 mm bore",
    "model": [
     "cam_lever"
    ],
    "stl": [
     "cam-lever.stl"
    ]
   },
   {
    "part": "Bracket screws",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Hinge bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 30 stainless screw with an M5 nyloc nut, through the bracket ears and the eye",
    "model": [
     "hinge_pin"
    ],
    "shop": [
     "m5_rod",
     "m5_nyloc"
    ]
   },
   {
    "part": "Eye bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 50 A2/A4 eye bolt (DIN 444); the eye at most 12 mm across and 6.5 mm thick",
    "model": [
     "eye_bolt"
    ],
    "shop": [
     "m5_eye_bolt"
    ]
   },
   {
    "part": "Disc springs",
    "qty": "4",
    "kind": "buy",
    "spec": "Stainless disc springs for M5 (DIN 2093, 10 × 5.2 mm), stacked in series",
    "model": [
     "belleville_stack"
    ],
    "shop": [
     "disc_spring_m5"
    ]
   },
   {
    "part": "Contact plate",
    "qty": "1",
    "kind": "buy",
    "spec": "Stainless washer 15–18 mm across (DIN 9021 or DIN 440 for M5), or a 1.5–2 mm steel plate; the cam rolls on it",
    "model": [
     "washer_plate"
    ],
    "shop": [
     "m5_washer"
    ]
   },
   {
    "part": "Fork head",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 15 hex standoff, female both ends (8 mm across flats), or a coupling nut; cross-drilled 4.2 mm, 3 mm from one end, for the lever bolt",
    "model": [
     "fork_head"
    ],
    "shop": [
     "m5_coupling_nut"
    ]
   },
   {
    "part": "Jam nut",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 A2/A4 nut (DIN 934); locks the fork head, whose height sets the clamp force",
    "model": [
     "lock_nut"
    ],
    "shop": [
     "m5_nut"
    ]
   },
   {
    "part": "Lever bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 × 20 stainless screw with an M4 nyloc nut; the lever turns on it",
    "model": [
     "pivot_pin"
    ],
    "shop": [
     "m4_screw_nut",
     "m4_nyloc"
    ]
   },
   {
    "part": "Slotted lid tab",
    "qty": "1",
    "kind": "lid",
    "spec": "Slot 6.4 mm wide, open at the end; flat seat for the springs",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "4",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "swing-bolt-wing-nut": {
  "per": "latch",
  "parts": [
   {
    "part": "Clevis bracket",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears 7 mm thick, 5.2 mm bore",
    "model": [
     "clevis_bracket"
    ],
    "stl": [
     "clevis-bracket.stl"
    ]
   },
   {
    "part": "Knob",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; hex pocket for the nyloc nut",
    "model": [
     "knob"
    ],
    "stl": [
     "knob.stl"
    ]
   },
   {
    "part": "Bracket screws",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Hinge bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 30 stainless screw with an M5 nyloc nut",
    "model": [
     "clevis_pin"
    ],
    "shop": [
     "m5_rod",
     "m5_nyloc"
    ]
   },
   {
    "part": "Swing bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 50 A2/A4 eye bolt (DIN 444); the eye at most 13 mm across and 7.5 mm thick",
    "model": [
     "eye_bolt"
    ],
    "shop": [
     "m5_eye_bolt"
    ]
   },
   {
    "part": "Knob nut",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 A2/A4 nyloc nut, pressed into the knob",
    "model": [],
    "shop": [
     "m5_nyloc"
    ]
   },
   {
    "part": "Disc springs",
    "qty": "4",
    "kind": "buy",
    "spec": "Stainless disc springs for M5 (DIN 2093, 10 × 5.2 mm); keep the force up as the seal creeps (optional, recommended)",
    "model": [
     "belleville_stack"
    ],
    "shop": [
     "disc_spring_m5"
    ]
   },
   {
    "part": "Washer",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 stainless washer, 15 mm across (DIN 9021) if you can get it; spreads the load on the lid tab",
    "model": [],
    "shop": [
     "m5_washer"
    ]
   },
   {
    "part": "Slotted lid tab",
    "qty": "1",
    "kind": "lid",
    "spec": "Slot 6.4 mm wide with a flat seat",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "4",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "baseline-screws": {
  "per": "screw",
  "parts": [
   {
    "part": "Screw",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 × 14 A2/A4 socket screw (DIN 912)",
    "model": [
     "screw_-25",
     "screw_25"
    ],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nut",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 square nut (DIN 562), pushed into the side slot in the boss",
    "model": [
     "nut_-25",
     "nut_25"
    ],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Washer",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 stainless washer, 9 mm across (DIN 9021) if you can get it",
    "model": [],
    "shop": [
     "m3_washer"
    ]
   },
   {
    "part": "Screw boss",
    "qty": "1",
    "kind": "box",
    "spec": "12 mm wide; the nut slot (5.7 × 2.0 mm) opens on the outside, with 4 mm of plastic above the nut; 100 % infill",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Lid tab with clearance hole",
    "qty": "1",
    "kind": "lid",
    "spec": "3.4 mm hole, counterbored 9.6 × 0.8 mm for the washer",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "captive-screw-spring-stack": {
  "per": "latch",
  "parts": [
   {
    "part": "Knob",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat; the screw head slides into the side slot",
    "model": [
     "knob"
    ],
    "stl": [
     "knob.stl"
    ]
   },
   {
    "part": "Screw",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 × 20 A2/A4 socket screw (DIN 912); its knurled head is pressed and glued into the knob",
    "model": [
     "screw"
    ],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nut",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 square nut (DIN 562), pushed into the side slot in the boss",
    "model": [
     "square_nut"
    ],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Disc springs",
    "qty": "5",
    "kind": "buy",
    "spec": "Stainless disc springs for M3 (DIN 2093, 8 × 3.2 mm); together ¼–½ as stiff as the seal",
    "model": [
     "belleville_stack"
    ],
    "shop": [
     "disc_spring_m3"
    ]
   },
   {
    "part": "Thrust washer",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 stainless washer at least as wide as the springs",
    "model": [
     "washer"
    ],
    "shop": [
     "m3_washer"
    ]
   },
   {
    "part": "Spacer sleeve",
    "qty": "1",
    "kind": "buy",
    "spec": "Brass M3 spacer, 6 mm across, 5 mm long, sanded to 4.6 mm; sits in the lid hole and stops the springs",
    "model": [
     "compression_sleeve"
    ],
    "shop": [
     "m3_spacer"
    ]
   },
   {
    "part": "Retainer",
    "qty": "1",
    "kind": "buy",
    "spec": "3 × 1 mm O-ring from the kit, rolled onto the screw just below the spacer sleeve, so the screw stays in the lid when it's open; it tucks into a pocket in the boss",
    "model": [],
    "shop": [
     "o_ring"
    ]
   },
   {
    "part": "Screw boss",
    "qty": "1",
    "kind": "box",
    "spec": "Nut slot 5.7 × 2.0 mm opening on the outside, with 4 mm of plastic above the nut; a 4.4 mm pocket on top for the retainer O-ring",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Lid tab with hole",
    "qty": "1",
    "kind": "lid",
    "spec": "6.4 mm hole for the spacer sleeve",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "vise-action-screw-cam": {
  "per": "latch",
  "parts": [
   {
    "part": "Handle with hub",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; M5 nut pocket in the top, two lugs underneath",
    "model": [
     "handle"
    ],
    "stl": [
     "handle.stl"
    ]
   },
   {
    "part": "Ramp cup",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upright; two 1.5 mm ramps over 90°, a 30° flat dwell and a stop; closes clockwise",
    "model": [
     "ramp_cup"
    ],
    "stl": [
     "ramp-cup.stl"
    ]
   },
   {
    "part": "Keeper with lip",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its end so the lip bends along the layers",
    "model": [
     "keeper"
    ],
    "stl": [
     "keeper.stl"
    ]
   },
   {
    "part": "Stud",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 40 stainless socket screw, head down under the pawl",
    "model": [
     "shaft"
    ],
    "shop": [
     "m5_rod"
    ]
   },
   {
    "part": "Pawl",
    "qty": "1",
    "kind": "buy",
    "spec": "2 mm stainless plate, 7.6 × 11.6 mm with rounded ends and a 5.3 mm hole, cut by hand",
    "model": [
     "pawl"
    ],
    "shop": [
     "flat_bar_2mm"
    ]
   },
   {
    "part": "Nuts",
    "qty": "3",
    "kind": "buy",
    "spec": "M5 A2/A4 nuts: one clamps the pawl against the screw head, one sits in the handle pocket and one jams it",
    "model": [
     "nut"
    ],
    "shop": [
     "m5_nut"
    ]
   },
   {
    "part": "Keeper screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Lid tab with hole and pegs",
    "qty": "1",
    "kind": "lid",
    "spec": "6 mm hole for the stud and two 2 mm pegs that locate the ramp cup",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "oc-adjustable-screw-hook": {
  "per": "latch",
  "parts": [
   {
    "part": "Base",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears with 4.25 mm bores",
    "model": [
     "base"
    ],
    "stl": [
     "base.stl"
    ]
   },
   {
    "part": "Lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side with supports under the upper cheek; 3.9 mm press holes for the pins",
    "model": [
     "lever"
    ],
    "stl": [
     "lever.stl"
    ]
   },
   {
    "part": "Hook",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; sits on the keeper (a steel hook is stronger)",
    "model": [
     "hook"
    ],
    "stl": [
     "hook.stl"
    ]
   },
   {
    "part": "Base screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Pivot pins",
    "qty": "2",
    "kind": "buy",
    "spec": "4 mm steel pins, 8 mm long, cut from 4 mm shaft; pressed into the lever cheeks, they turn in the base",
    "model": [
     "pivot_pins"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Link pin",
    "qty": "1",
    "kind": "buy",
    "spec": "4 mm steel pin, 14 mm long; pressed through both cheeks",
    "model": [
     "link_pin"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Eye bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 × 40 A2/A4 eye bolt (DIN 444); the eye at most 10 mm across and 5.5 mm thick",
    "model": [
     "eye_bolt"
    ],
    "shop": [
     "m4_eye_bolt"
    ]
   },
   {
    "part": "Nyloc nut and washer",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A2/A4 nyloc nut and washer on top of the hook; turning it sets the take-up",
    "model": [
     "locknut"
    ],
    "shop": [
     "m4_nyloc",
     "m4_screw_nut"
    ]
   },
   {
    "part": "Keeper",
    "qty": "1",
    "kind": "lid",
    "spec": "Ledge on the lid edge, 18 × 6 mm, loaded in compression",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "oc-spring-loaded-compensating": {
  "per": "latch",
  "parts": [
   {
    "part": "Base",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears with 4.25 mm bores",
    "model": [
     "base"
    ],
    "stl": [
     "base.stl"
    ]
   },
   {
    "part": "Lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side with supports under the upper cheek; 3.9 mm press holes for the pins",
    "model": [
     "lever"
    ],
    "stl": [
     "lever.stl"
    ]
   },
   {
    "part": "Hook",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; sits on the keeper and carries the spring carriage",
    "model": [
     "hook"
    ],
    "stl": [
     "hook.stl"
    ]
   },
   {
    "part": "Spring carriage",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upright; holds the 12.5 × 25 mm die spring and stops it after 5.5 mm of travel, drain hole",
    "model": [
     "spring_guide"
    ],
    "stl": [
     "spring-carriage.stl"
    ]
   },
   {
    "part": "Base screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Pivot pins",
    "qty": "2",
    "kind": "buy",
    "spec": "4 mm steel pins, 8 mm long, cut from 4 mm shaft; pressed into the lever cheeks, they turn in the base",
    "model": [
     "pivot_pins"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Link pin",
    "qty": "1",
    "kind": "buy",
    "spec": "4 mm steel pin, 14 mm long; pressed through both cheeks",
    "model": [
     "link_pin"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Eye rod",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 × 70 A2/A4 eye bolt (DIN 444 style), at least 66 mm from the eye's centre to the end, or M4 threaded rod with a bent eye",
    "model": [
     "rod"
    ],
    "shop": [
     "m4_eye_bolt"
    ]
   },
   {
    "part": "Compression spring",
    "qty": "1",
    "kind": "buy",
    "spec": "ISO 10243 die spring for a 12.5 mm hole, 25 mm long, yellow (extra heavy, about 58 N/mm); squeezed 3.4 mm when closed",
    "model": [
     "spring"
    ],
    "shop": [
     "compression_spring"
    ]
   },
   {
    "part": "Nyloc nut and washer",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A2/A4 nyloc nut, with a 15 mm washer under it (M5 DIN 9021) that lands on the carriage rim if the spring is squeezed too far",
    "model": [
     "spring_seat"
    ],
    "shop": [
     "m4_nyloc",
     "m5_washer"
    ]
   },
   {
    "part": "Keeper",
    "qty": "1",
    "kind": "lid",
    "spec": "Ledge on the lid edge, 18 × 6 mm, loaded in compression",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.2 mm tall: 1.2 mm below the free seal, so the spring sets the squeeze and the lid only reaches them once the seal has set",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the spring squeezes it about 0.9 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "threaded-lid-cap": {
  "per": "closure",
  "parts": [
   {
    "part": "Jar with thread",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upright; 3 mm pitch thread, 3 turns; the inner lip on the rim is the hard stop",
    "model": [
     "jar",
     "jar_thread"
    ],
    "stl": [
     "jar.stl"
    ]
   },
   {
    "part": "Screw cap",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; internal thread, 30 grip ribs",
    "model": [
     "screw_cap"
    ],
    "stl": [
     "cap.stl"
    ]
   },
   {
    "part": "Seal ring",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.4 × 3.2 mm, on the jar rim outside the lip; 0.8 mm squeeze",
    "model": [
     "tpu_ring"
    ],
    "stl": [
     "seal-ring.stl"
    ]
   },
   {
    "part": "Slip washer (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "PTFE or PE, between the seal and the turning cap",
    "model": [],
    "shop": [
     "ptfe_washer"
    ]
   },
   {
    "part": "Lock (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A4 spring plunger, or a printed pawl",
    "model": [],
    "shop": [
     "spring_plunger"
    ]
   }
  ]
 },
 "quarter-turn-compression": {
  "per": "latch",
  "parts": [
   {
    "part": "Housing",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flange down; a bushing in the lid tab",
    "model": [
     "body"
    ],
    "stl": [
     "housing.stl"
    ]
   },
   {
    "part": "Wing knob",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat; hex pocket for an M5 nut",
    "model": [
     "wing_knob"
    ],
    "stl": [
     "knob.stl"
    ]
   },
   {
    "part": "Ramp keeper",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its end; the underside ramps down 1.5 mm to a flat dwell, with a stop block",
    "model": [
     "ramp_keeper"
    ],
    "stl": [
     "ramp-keeper.stl"
    ]
   },
   {
    "part": "Screw",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 40 A2/A4 socket screw (DIN 912), head under the pawl",
    "model": [],
    "shop": [
     "m5_rod"
    ]
   },
   {
    "part": "Pawl",
    "qty": "1",
    "kind": "buy",
    "spec": "2 mm stainless plate, 7 × 12.3 mm with a rounded end and a 5.3 mm hole, cut by hand",
    "model": [
     "pawl"
    ],
    "shop": [
     "flat_bar_2mm"
    ]
   },
   {
    "part": "Nuts",
    "qty": "3",
    "kind": "buy",
    "spec": "M5 A2/A4 nuts: one clamps the pawl against the screw head, one sits in the knob's pocket and one jams it",
    "model": [],
    "shop": [
     "m5_nut"
    ]
   },
   {
    "part": "Keeper screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Lid tab with hole",
    "qty": "1",
    "kind": "lid",
    "spec": "8.4 mm hole for the housing",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "multi-point-rod-latch": {
  "per": "door",
  "parts": [
   {
    "part": "Handle with shaft",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, grip face down; 80 mm lever, 10 mm shaft with a flat",
    "model": [
     "handle"
    ],
    "stl": [
     "handle.stl"
    ]
   },
   {
    "part": "Hub cam",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat; two spiral slots move the rods 6 mm in a 90° turn",
    "model": [
     "hub_cam"
    ],
    "stl": [
     "hub-cam.stl"
    ]
   },
   {
    "part": "Latch points",
    "qty": "2",
    "kind": "printed",
    "spec": "ASA, on its side; 12° face that draws the door in 1.3 mm",
    "model": [
     "latch_points"
    ],
    "stl": [
     "latch-point.stl"
    ]
   },
   {
    "part": "Rod guides",
    "qty": "2",
    "kind": "lid",
    "spec": "Blocks on the door's inner face with 5.4 mm holes",
    "model": [
     "rod_guides"
    ],
    "stl": [
     "door-coupon.stl"
    ]
   },
   {
    "part": "Frame keepers",
    "qty": "2",
    "kind": "box",
    "spec": "Lug with a 12° face beside a 6 mm rod hole, in the frame",
    "model": [
     "frame"
    ],
    "stl": [
     "frame-coupon.stl"
    ]
   },
   {
    "part": "Rods",
    "qty": "2",
    "kind": "buy",
    "spec": "5 mm steel rod, about 95 mm long, bent 90° with a 6 mm leg at the hub end",
    "model": [
     "rods"
    ],
    "shop": [
     "rod_5mm_long"
    ]
   },
   {
    "part": "Shaft O-ring",
    "qty": "1",
    "kind": "buy",
    "spec": "O-ring 10 × 2 mm (in the NBR kit), in the counterbore round the shaft, outside the door",
    "model": [],
    "shop": [
     "o_ring"
    ]
   },
   {
    "part": "Hub screw",
    "qty": "1",
    "kind": "buy",
    "spec": "M3 × 8 socket screw with a washer, into a square nut in the shaft",
    "model": [],
    "shop": [
     "m3_screw",
     "m3_washer",
     "m3_square_nut"
    ]
   },
   {
    "part": "Clamp screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 8 socket screws into square nuts; clamp the latch points to the rods",
    "model": [],
    "shop": [
     "m3_screw",
     "m3_square_nut"
    ]
   },
   {
    "part": "Door gasket",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A rib round the door; design it into your door and frame",
    "model": [
     "door_gasket"
    ],
    "stl": []
   }
  ]
 },
 "wedge-slide-bolt": {
  "per": "latch",
  "parts": [
   {
    "part": "Guide",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; pocket for the wedge tip and a bridge outboard of the catch",
    "model": [
     "guide"
    ],
    "stl": [
     "guide.stl"
    ]
   },
   {
    "part": "Wedge",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side so both sliding faces are smooth walls; 1:10 taper",
    "model": [
     "wedge"
    ],
    "stl": [
     "wedge.stl"
    ]
   },
   {
    "part": "Catch block",
    "qty": "1",
    "kind": "lid",
    "spec": "Hangs from the lid tab: 26 mm wide, 7.5 mm thick, with a 10.8 mm window whose floor matches the taper",
    "model": [
     "catch_block"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Guide screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Detent (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A4 spring plunger",
    "model": [],
    "shop": [
     "spring_plunger"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "bayonet-twist-lock": {
  "per": "closure",
  "parts": [
   {
    "part": "Container with lugs",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upright; 3 lugs, each with a stop, a flat dwell and a ramp that draws the lid down 1.2 mm",
    "model": [
     "can",
     "can_lugs"
    ],
    "stl": [
     "can.stl"
    ]
   },
   {
    "part": "Bayonet lid",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, upside down; 3 inward lugs",
    "model": [
     "bayonet_lid"
    ],
    "stl": [
     "lid.stl"
    ]
   },
   {
    "part": "Seal ring",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.4 × 3.2 mm, on the rim outside the lip; 0.8 mm squeeze",
    "model": [
     "tpu_ring"
    ],
    "stl": [
     "seal-ring.stl"
    ]
   },
   {
    "part": "Detent (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A4 spring plunger or ball detent",
    "model": [],
    "shop": [
     "spring_plunger"
    ]
   },
   {
    "part": "Slip washer (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "PTFE or PE, under the seal ring",
    "model": [],
    "shop": [
     "ptfe_washer"
    ]
   }
  ]
 },
 "oc-fixed-hook-pinned": {
  "per": "latch",
  "parts": [
   {
    "part": "Base",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears with 4.25 mm bores",
    "model": [
     "base"
    ],
    "stl": [
     "base.stl"
    ]
   },
   {
    "part": "Lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side with supports under the upper cheek; 3.9 mm press holes for the pins",
    "model": [
     "lever"
    ],
    "stl": [
     "lever.stl"
    ]
   },
   {
    "part": "Hook link",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, lying on its side; neck 7.2 × 5.7 mm",
    "model": [
     "hook_link"
    ],
    "stl": [
     "hook-link.stl"
    ]
   },
   {
    "part": "Base screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Pivot pins",
    "qty": "2",
    "kind": "buy",
    "spec": "4 mm steel pins, 8 mm long, cut from 4 mm shaft; pressed into the lever cheeks, they turn in the base",
    "model": [
     "pivot_pins"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Link pin",
    "qty": "1",
    "kind": "buy",
    "spec": "4 mm steel pin, 14 mm long; pressed through both cheeks",
    "model": [
     "link_pin"
    ],
    "shop": [
     "pin_4mm"
    ]
   },
   {
    "part": "Keeper",
    "qty": "1",
    "kind": "lid",
    "spec": "Ledge on the lid edge, 18 × 6 mm, loaded in compression",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "double-throw-butterfly": {
  "per": "latch",
  "parts": [
   {
    "part": "Hinge bracket",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; match the ear gap and bore to the latch you buy",
    "model": [
     "hinge_bracket"
    ],
    "stl": [
     "hinge-bracket.stl"
    ]
   },
   {
    "part": "Butterfly latch",
    "qty": "1",
    "kind": "buy",
    "spec": "Stamped A2/A4 stainless latch (outer plate and inner lever), about 22 mm wide",
    "model": [
     "outer_latch",
     "inner_lever"
    ],
    "shop": [
     "butterfly_latch"
    ]
   },
   {
    "part": "Hinge pin",
    "qty": "1",
    "kind": "buy",
    "spec": "3 mm steel pin, 31 mm long",
    "model": [
     "hinge_pin"
    ],
    "shop": [
     "pin_3mm"
    ]
   },
   {
    "part": "Bracket screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Keeper lip",
    "qty": "1",
    "kind": "lid",
    "spec": "Lip on the lid edge; an M4 stainless screw makes it adjustable",
    "model": [
     "lid_lip"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "rotary-cam-lock-simple": {
  "per": "latch",
  "parts": [
   {
    "part": "Cam lock body with knob",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, knob down; a hex on the end of the shank drives the tongue",
    "model": [
     "cam_lock_body"
    ],
    "stl": [
     "cam-lock-body.stl"
    ]
   },
   {
    "part": "Tongue",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat; 8 mm thick, 14 mm wide, reaching 8.8 mm from the shaft, with a hex socket for the body",
    "model": [
     "tongue"
    ],
    "stl": [
     "tongue.stl"
    ]
   },
   {
    "part": "Keeper",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its end; the ledge tapers 0.8 mm over the last part of the turn, with a stop block",
    "model": [
     "keeper"
    ],
    "stl": [
     "keeper.stl"
    ]
   },
   {
    "part": "Screw, washer and nyloc nut",
    "qty": "1",
    "kind": "buy",
    "spec": "M5 × 25 A2/A4 socket screw (DIN 912) from the top, with a washer and nyloc nut under the tongue",
    "model": [],
    "shop": [
     "m5_rod",
     "m5_washer",
     "m5_nyloc"
    ]
   },
   {
    "part": "Keeper screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Detent (optional)",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 A4 spring plunger",
    "model": [],
    "shop": [
     "spring_plunger"
    ]
   },
   {
    "part": "Lid tab with hole",
    "qty": "1",
    "kind": "lid",
    "spec": "8.5 mm hole for the body",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "cam-hook-printed": {
  "per": "latch",
  "parts": [
   {
    "part": "Mount with ears",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; 4.25 mm bore",
    "model": [
     "mount"
    ],
    "stl": [
     "mount.stl"
    ]
   },
   {
    "part": "Cam-hook lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side, 100 % infill",
    "model": [
     "cam_hook_lever"
    ],
    "stl": [
     "cam-hook-lever.stl"
    ]
   },
   {
    "part": "Pivot bolt",
    "qty": "1",
    "kind": "buy",
    "spec": "M4 × 25 stainless screw with an M4 nyloc nut",
    "model": [
     "pivot_pin"
    ],
    "shop": [
     "m4_screw_nut",
     "m4_nyloc"
    ]
   },
   {
    "part": "Mount screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Catch peg",
    "qty": "1",
    "kind": "lid",
    "spec": "Peg on two posts on the lid tab; an M3 screw in it makes the catch adjustable",
    "model": [
     "catch_peg"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "bail-wire-latch": {
  "per": "latch",
  "parts": [
   {
    "part": "Wire retainers",
    "qty": "2",
    "kind": "printed",
    "spec": "ASA, on end; blind 3.3 mm hole for the wire (the left one is retainer-left.stl)",
    "model": [
     "retainers"
    ],
    "stl": [
     "retainer-right.stl"
    ]
   },
   {
    "part": "Lever wire",
    "qty": "1",
    "kind": "buy",
    "spec": "3 mm stainless wire, about 110 mm, bent to shape",
    "model": [
     "lever_wire"
    ],
    "shop": [
     "wire_3mm"
    ]
   },
   {
    "part": "Bail",
    "qty": "1",
    "kind": "buy",
    "spec": "3 mm stainless wire, about 45 mm, bent to shape",
    "model": [
     "bail_wire"
    ],
    "shop": [
     "wire_3mm"
    ]
   },
   {
    "part": "Retainer screws",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 × 16 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "4",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Catch ridge",
    "qty": "1",
    "kind": "lid",
    "spec": "Ridge on the lid tab with a groove for the bail",
    "model": [
     "catch_ridge"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "4",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "oc-fully-printed": {
  "per": "latch",
  "parts": [
   {
    "part": "Base",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, flat on its back; ears with 4.25 mm bores",
    "model": [
     "base"
    ],
    "stl": [
     "base.stl"
    ]
   },
   {
    "part": "Lever",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side with supports under the upper cheek",
    "model": [
     "lever"
    ],
    "stl": [
     "lever.stl"
    ]
   },
   {
    "part": "Pivot pins",
    "qty": "2",
    "kind": "printed",
    "spec": "ASA, lying on the flat; glued into the lever cheeks",
    "model": [
     "pivot_pins"
    ],
    "stl": [
     "pivot-pin.stl"
    ]
   },
   {
    "part": "Axle pin",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, lying on the flat; pressed through the cheeks and the loop",
    "model": [],
    "stl": [
     "axle-pin.stl"
    ]
   },
   {
    "part": "Loop link",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side; bars 2.2 × 3.3 mm",
    "model": [
     "loop_link"
    ],
    "stl": [
     "loop-link.stl"
    ]
   },
   {
    "part": "Base screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 10 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), dropped down the channels in the box wall",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Keeper with horn",
    "qty": "1",
    "kind": "lid",
    "spec": "Ledge on the lid edge with a 2.2 mm horn the loop hooks over",
    "model": [
     "keeper"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Nut channels",
    "qty": "2",
    "kind": "box",
    "spec": "Inside pillar with a 5.7 × 2.0 mm channel per nut, open on the rim outside the seal; blind 3.4 mm screw holes, so no path into the box",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 },
 "snap-fit-compliant": {
  "per": "latch",
  "parts": [
   {
    "part": "Snap arm",
    "qty": "1",
    "kind": "printed",
    "spec": "ASA, on its side so it flexes along the layers; 20 mm wide, 2.6 mm thick, about 24 mm long",
    "model": [
     "snap_hook"
    ],
    "stl": [
     "snap-arm.stl"
    ]
   },
   {
    "part": "Arm screws",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 × 8 A2/A4 socket screws (DIN 912)",
    "model": [],
    "shop": [
     "m3_screw"
    ]
   },
   {
    "part": "Square nuts",
    "qty": "2",
    "kind": "buy",
    "spec": "M3 square nuts (DIN 562), pushed into the boss on the lid",
    "model": [],
    "shop": [
     "m3_square_nut"
    ]
   },
   {
    "part": "Screw boss",
    "qty": "1",
    "kind": "lid",
    "spec": "20 × 10 × 6 mm block on the lid with two nut slots; the holes stop short of the lid",
    "model": [
     "lid"
    ],
    "stl": [
     "lid-coupon.stl"
    ]
   },
   {
    "part": "Catch ledge",
    "qty": "1",
    "kind": "box",
    "spec": "On the box wall, with a lead-in ramp",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Hard stops",
    "qty": "2",
    "kind": "box",
    "spec": "Pads on the rim either side of the latch, 1.6 mm tall: 0.8 mm below the free seal",
    "model": [
     "box"
    ],
    "stl": [
     "box-coupon.stl"
    ]
   },
   {
    "part": "Seal strip",
    "qty": "1",
    "kind": "seal",
    "spec": "TPU 85A, 1.5 × 3.4 mm, in a 1.8 × 1.0 mm groove in the rim; the latch squeezes it 0.8 mm",
    "model": [
     "tpu_rib"
    ],
    "stl": [
     "seal-strip.stl"
    ]
   }
  ]
 }
}