Most efficient way of making an interactive door?

I was wondering if MatineeActor is still the preferred method even though Matinee is now a legacy feature or is there a better way to do it in blueprints?
Basically as my level could have up to 1000 doors with different types so how can I make a universal method?

Make a interface called “Door” give it a function named “Open”

Make a basic Blueprint door with mesh and an animation that opens the door.
Let this Blueprint implement the created Interface and in the “Open” Event, play said Animation(The Animation can be a timeline, a skeletal Mesh animation…)

In your player Blueprint, do a (Line-)ObjectTrace into the direction of Sight. When the Trace found something, check if the Object implements the Door Interface, if yes, call the Open-Event of the Interface.
You can do multiple Blueprints implementing this Interface, so you can have differnt kinds of doors.