Solid Difference Multiple Breps

I’m struggling to figure out how to perform a solid difference on multiple Breps,
I want to check if there an ‘easy’ solution or that I should figure out a more complex tree structure to extract the exact breps needed at any one time and pass them down the list.

The end goal is to have as many rings as needed each interacting with each other to create negative space wherever they overlap.

SolidDifferenceMulti.gh (12.2 KB)

UPDATE

Had a bit of luck using collision component to extract the correct indices however it is far from robust…

SolidDifferenceMulti_w.gh (12.1 KB)