the array reference should be a reference to whatever array you are using to store the item’s data, which you want to transfer. the array can be full of custom structs that hold item data, or it can be names that can access data from a data table, or a struct that contains some data, and a name that accesses more data. it depends on how you want to store your items.
inventory slots could be given an enum that represents what PocketType it is. then you could make many pocket types, like boots, helmets, gloves, pants, healing items, quest items, ingredients, Chest, etc… and they could all use the same Inventory Slot code, but when you drop an item in a slot, you can check if the item’s PocketType matches the slot’s pocket type, before allowing the transaction. some of those pocket types can have special rules, like if the PocketType is Chest, you can allow any non quest item.