Can someone explain what the difference is between TSE_RNA_STRUCT, and TSE_RNA_PROPERTY?

I looked at the Outliner Data API view and it’s not visually clear what makes them different. A TSE_RNA_PROPERTY tree element should be a property of something in Blender and probably should not be allowed to have children elements. However, for example, the Data API view of the Outliner shows BlendFile Data > Objects > Camera > Bounding Box is not a property(or at least the property widget isn’t visible) yet in file within function outliner_add_element() the local variable named “type” is assigned TSE_RNA_PROPERTY . Shouldn’t it be assigned TSE_RNA_STRUCT ?

If it seems like it would help to make things clearer then feel free to explain other TSE_* too