Hi Tim,
unsurprisingly, I would now recommend ADS/JavaScript. I am attaching an example to get you started. Put it into your EDG Studio workspace, edit the file and open its Swagger UI on the Reports tab:

The (minimal) code for this output is:

--
You received this message because you are subscribed to the Google Groups "TopBraid Suite Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to topbraid-user...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/CAF0WbnLnGCZM3KT764iDQTB56WPpUJ8JX_wiu9%3DM6xjkETjphg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/dc4f5b51-783a-2715-2d61-ced2d0e5d0b0%40topquadrant.com.

Hi Tim,
this is one of the pitfalls of using the auto-generated APIs. The
technical issue is that nodeShape.properties returns instances of
NamedNode. You can see that when you mouse-over .properties:

and NamedNode doesn't know how to interpret the properties specific to sh_PropertyShape such as .names and .group.
OTOH sh.everyPropertyShape() returns instances of sh_PropertyShape

To avoid this, you could potentially avoid using the special subclasses of NamedNode and use the generic value functions. For example use
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/CAF0Wbn%2BSDV8%2Bbxt3xi2fzbG70J68_i7wTadQpGdvnYBprBvkpg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/topbraid-users/c0a47c91-34cb-bf96-c095-cda25084c816%40topquadrant.com.