In the longer term, the need for header file will be replaced by the generation of a Clang C++ module. You can test this via the MODULE option of ROOT_GENERATE_DICTIONARY in CMake or directly the -cxxmodule option of rootcling
I actually already use the MODULE option of ROOT_GENERATE_DICTIONARY in my projects’s CMakeLists and still it seems the header files are somehow required.
Looking more closely to the ROOT_GENERATE_DICTIONARY macro I would conclude that I need to use a Root that has been compiled with the runtime_cxxmodules` option for this to work. Is that correct ?