Rework the internals of pick_inventory for better consistency and usability.