I’m working on a drag and drop interaction myself. And struggling.
I was looking at your example just now to try to solve it.
I actually made a feature request for a robust drag and drop functionality here:
It feels like drag and drop would be a good core behavior to have in the engine. I’m doing a fair bit of work to try to create a reusable version of drag and drop, but not succeeding so far, though I think I’m getting close.
The main problem I have is the “kick it out” functionality for when a dragged object replaces another. I’ll post here if I figure it out.