Doubt regarding "Improve drag & drop support in the blocks engine"

hello
I went through the detailed description and PoC PR of this project

i was able to add dragOverlay, a lighter visual indicator for the drop position and a duplicate DragDropList component by using dnd-kit.

By going through the PoC Pr, I saw blockForm and EditblockWrapper have been refactored almost completely according to the dnd-kit, so to be clear now we need to focus on enhancing blocks engine context which will control all draggables and droppables and will also let us drag and drop among different block containers?

I also wasn't able to understand what functionality do we need to achieve by making our own custom collision detection algorithm. like what results should the algorithm yield?.

It'll be really helpful if @sneridagh or other possible mentors can provide some guidance on it.

@Yahya at this stage of the GSOC, the only information available is the one that we already provided in:

The PoC is only the beginning, so you can get a grasp of what we want to achieve. The project will focus in have it completed and polished. This feature is key in the blocks engine and the DragDropList is used as primitive in other places in core and add-ons.

thank you for your reply and detailed description of project on github

@sneridagh it will be really helpful if you can clear one more doubt of mine.

While upgrading to dnd kit, if we change the working of BlocksForm as
did in POC pr it doesn't work with volto-group-block, volto-columns-block and other addons

So it means we have to implement the dnd kit in a way that working and functional rendering of blocksform, DragDropList and other components stay's exactly the same?

Because if we alter that we'll need to update volto-group-block, volto-columns-block and other libraries which are using blocks engine

It will be a breaking change targeted to the next major version of Volto. I think this would be one of the tasks that come out of POC and for the potential gsoc student on how to avoid that (if possible).