Interfaces! reduces the need to cast (create hard references in memory).
Not knowing the full scope of your game/mode I couldn’t give you an absolute path in this regard.
But for me having interactive doors, windows, pickup items (inventory stuff) I use two interfaces. Doors/Windows/Buttons/Levers etc work with “Interactive Interface” and pickups work with “Loot Interface”.
All of which use a custom collision and response so that the custom collision is the only collision that will trigger overlaps on these items.