ITEM 31
keep_uprightwould only fit lying down, and the item may not be laid down
Each rule is a request field, enforced during the search by every engine and recomputed afterwards by a validator that shares no code with it.
inner_dimensions + clearanceEvery placement stays inside the container's usable volume, and collision is decided on exact integer coordinates.
inner_dimensions + clearanceEvery placement stays inside the container's usable volume, and collision is decided on exact integer coordinates.
exact fixed-point ticksLengths and weights accept fractional, decimal or unit-suffixed input and are carried as exact ticks, with no floating point before the score.
allowed_rotations · keep_uprightOrientation is restricted per axis, not as a single on/off switch, and 'this side up' is expressible on the item that needs it.
obstacles + additional_boxesReserved volumes are geometry: unions of exact boxes approximate a wheel arch, a post or a roof shelf, and placements route around them.
minimum_support_ratio · ground_contact_ruleThe supporting footprint is computed as exact contact area against the floor or the items below, including loads bridged across two neighbours.
max_top_load · cumulativeLoad is propagated through the contact graph, so a bearing limit is checked against the whole stack above an item rather than its direct neighbour.
stackable · max_stacked_items · nesting_height · max_stack_densityStackability, stack counts, interlocking height and density limits shape a legal column. Density is checked at every level, not only the floor.
weight · max_payload · tare_weightItem weight, container tare and payload capacity are exact, and an overloaded candidate is refused during search with payload_exceeded.
centre of mass · support polygon · axlesThe aggregate centre of mass, the support polygon and exact gross two-axle reactions are enforced through the same constraint layer as geometry.
incompatible_tags · group · policyItems can be required to stay together or apart, and versioned eligibility rules travel in the request with the context they select on.
stop_index · loading sequenceA geometrically reachable loading and unloading sequence, so an item due at a later stop is never buried under one that comes off earlier.
recompute from the resultA validator that shares no code with the solver recomputes the objective and every affected rule from the returned placements, in every runtime.
lexicographic exact integersSix selectable rankings, from fewest containers to cheapest landed cost. Every one of them starts with unpacked_count.
Every unpacked item comes back with a reason code, the details behind it, and how strongly that reason is backed. This is what support, a warehouse operator or a retry policy actually needs.
would only fit lying down, and the item may not be laid down
every candidate position left the footprint below the required support ratio
the group travels whole or not at all, so neither unit was placed