Any way to enumerate metadata other than metadata.tags?

Per the FAQ Scripts (JS & VBS) Snippet: Enumerating files and metadata tags it is possible to enumerate metadata.tags. Is there any way of doing the same thing with other metadata such as image, doc, audio, etc.? From my attempt to do the same (see below) with a sample image it would appear not. The only way I know is to interrogate all possible image properties as listed in Keywords for Columns (gpsoft.com.au) one by one. It would be handy to be able to home in on just the available properties.

Test Output:

f = C:\test\2019-09-15 18-10-20 (20190915_081020932_iOS).jpg
md = image, grps = Images
Sabi River
2019
Sep
f.metadata.image.datetaken = Sun Sep 15 10:10:21 UTC+1000 2019
f.metadata.doc.title = Sabi River

Test Code:

function OnClick(clickData)
{
	if (clickData.func.sourcetab.selected_files.count==0) return;
	DOpus.ClearOutput();
	var f = clickData.func.sourcetab.selected_files(0);
	DOpus.output("f = "+f);
	var md = f.metadata;
	if (String(md)=="none") {
		DOpus.output("md = "+md);
		return;
	}
	var grps;
	for (var i = 0; i < f.groups.count; i++) grps = (i==0) ? f.groups(i) : grps+", "+f.groups(i);
	DOpus.output("md = "+md+", grps = "+grps);
	// Enumerate tags meta
	for (var tagsEnum = new Enumerator(f.metadata.tags); !tagsEnum.atEnd(); tagsEnum.moveNext()) DOpus.output(tagsEnum.item());
	// Demonstrate that there is at least one image property
	DOpus.output("f.metadata.image.datetaken = "+f.metadata.image.datetaken);
	// Enumerate image meta
	for (var imageEnum = new Enumerator(f.metadata.image); !imageEnum.atEnd(); imageEnum.moveNext()) DOpus.output(imageEnum.item());
	// Demonstrate that there is at least one doc property
	DOpus.output("f.metadata.doc.title = "+f.metadata.doc.title);
	// Enumerate doc meta
	for (var docEnum = new Enumerator(f.metadata.doc); !docEnum.atEnd(); docEnum.moveNext()) DOpus.output(docEnum.item());
}

metadata.tags is a list of values, not a list of tag names. (The term "tag" is quite overloaded when it comes to metadata.)

There isn't a way to list all the property names of any objects.