Hello Uncle Bob :)
You explained that any heart software should be completely independent of any delivery mechanism (DB, kind of UI etc...) => totally agree.
That's why you outline the need of an Interactor layer, representing any uses cases with pure data structures as input and pure data structures as output.
Currently, I develop a personal project using Hexagonal Architecture (following Domain-Driven Design).
Does the Application Services layer, in DDD sense, play the exactly same role as your Interactor layer (Use-Cases layer)?
Indeed, each application service deals with data structures as input (simple DTO in my case), and returns others. Each service represents a use-case and the whole is well testable quickly with data only in memory without any "details" like controller or anything else. Thus, it seems to be very similar with your definition of "Interactor layer".
Did I missed something ?
Thanks a lot :)
Michael