Making a C++ override-able via ino with access to subclassed structs in RTC memory

RTC_DATA_ATTR Says where to allocate the memory. A forward declaration with extern does not allocate the memory, just tells the compiler what the variable’s name and type is.
When the compiler finds the definition it allocates the memory in the right place and the linker resolves it for the other modules which did not know where that variable would be.