How to reflect sub-component (component sub data) to editor?

For example, I have class like this

	struct CamProp
float distance;//I just want to reflect this data
float data2;
AZ_RTTI(CamData, "{5D603711-1DDB-4C5D-A2B1-588DC4B444E0}");
void SA::Reflect(AZ::ReflectContext* reflection)
class A
CamProp m_saData;
void A::Reflect(AZ::ReflectContext* reflection)

But here is the result

So How can I reflect the distance property in this case?

I have checked how the CameraRig component do this at the file ICameraSubComponent.h, but I see that some source code is hidden (I guess), so I can’t figure out how does ICameraSubComponent do this.

I would do something like that:

	class CoolExempleClass
~CoolExempleClass() = default;
AZ_RTTI(CoolExempleClass, "{8A996D34-2453-4933-AAF1-85B931A28E5A}"); //GUID
static void Reflect(AZ::ReflectContext* reflection);
float fCoolFloat = 0.0f;
bool bAwesomeBool = true;
void Init() {}
void Activate(AZ::EntityId) {}
void Deactivate() {}

You need a RTTI with a unique GUID, a static reflect function and Init, Activate and Deactivate and obliviously your data as member variables.

Then you call your reflect function in the reflect function of your SystemComponent:

	void CoolSystemComponent::Reflect(AZ::ReflectContext* context)

Once its done you can use your class as a field in your component.