It’s probably registered manually somewhere else and support for it is hard coded in to UnrealHeaderTool, as it one of most common used types. All macros you use are normally parsed by UHT before compilation, UHT then generates extra C++ which generates entries in reflection system, but this can be done manually. Good example is blueprint structures which need to register themselves to it too. Blueprint themselves need to register themselves as classes, reflection system is design to take different types from different sources as well it can be hard coded and C++ via UHT parseing is just one way of doing it.