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)
{
//...
serializeContext->Class<CamProp>()
->Version(1);
//...
}
}

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
{
public:
~CoolExempleClass() = default;
AZ_RTTI(CoolExempleClass, "{8A996D34-2453-4933-AAF1-85B931A28E5A}"); //GUID
static void Reflect(AZ::ReflectContext* reflection);
protected:
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)
{
CoolExempleClass::Reflect(context);
}

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