XF page or Site page is accessible via"model.json"is because the respective page component has Sling Model with Exporter. Also the container components used within in turn has its own Sling Model with Exporter.
Given your existing set up, the only possible way to expose XF or Site Page as JSON would be to make use of JSON rendering ofSling Default Get Servlet. - "tidy.infinity.json or tidy.-1.json" which will expose the entire node structure with utmost depth. (To avoid custom implementation)
@bsr060893 : 'path' node is still part of the Image component , So you can use the below code to read the properties of the path node in Image Sling Model class. As the path node will not have any sling resource type, sling exporter will not process it automatically.
@Inject @Via(value = "path", type = ChildResource.class) String getPropertyName();