A door is a 2D opening — width and height matter; depth (path length through the doorway) doesn’t.
- Generate all 6 dimension permutations of the item (3 axes × 2 flips).
- For each permutation, apply the door constraint: item_width ≤ door_width AND item_height ≤ door_height.
- Subtract 1.5 in handling clearance from each axis to leave room for human movement.
- Pick the permutation with the largest minimum-axis margin — that’s the orientation a mover would choose.
- Verdict ladder (verdict-tiers.js): FITS if margin ≥ 2 in; FITS_TIGHT if 0.5–2 in; FITS_VERY_TIGHT if 0–0.5 in; DOESN'T_FIT below.
Tolerance ±¼ in (6 mm) is applied implicitly (band promotion to FITS_VERY_TIGHT) — see the note below the orientation matrix.