One of the great things about structs is that they are allocated on the stack which make them really fast.
However, an instance of a class and its properties are heap allocated. So wouldn't a property that's a struct be allocated on the heap as well?
Short answer, yes, structs that are declared as stored instance properties are allocated in the heap, because the object storage is already in the heap.
In Swift any value type (structs included) is allocated on the memory location where it's declared: