Specifiying unload location

Looking at the unload logic:

                Just itemInInventory ->
                    describeBranch "I see at least one item in the ore hold. Move this to the item hangar."
                                ( "Drag and drop."
                                , EffectOnWindow.effectsForDragAndDrop
                                    { startLocation = itemInInventory.totalDisplayRegion |> centerFromDisplayRegion
                                    , endLocation = itemHangar.totalDisplayRegion |> centerFromDisplayRegion
                                    , mouseButton = MouseButtonLeft

The way it works right now is a little annoying is there a way for me to specify a container within the itemHangar as the unload location ?

Yes, you can use another container when it is visible. You can replace the itemHangar (at endLocation) in your code with the UI node that represents the destination container.
The totalDisplayRegion field is common among UI nodes so that you can use any UI node, including the ones representing your containers.

Also, the |> centerFromDisplayRegion part should extract only a 2D location from the UI node. That means you could skip the UI node entirely and instead supply a point where the mouse button should be released.

Ok how do I go about actually selecting a different container? any code snipper or reference?

You can select a container by clicking on it using the left mouse button.
Here is an example code of how some bots implement it: