I'm attempting to find a way to identify the unique properties from material nodes to put into a collection instead of accessing their values by their name. Nodes have collections for inputs, outputs, links, etc. I'm looking for a similar type collection for the node's unique properties.
For example, the Ambient Occlusion node has three unique properties(inside, only local, samples) which values can be accessed from ShaderNodeAmbientOcclusion by using their name. ie. node.samples. I can get a list of all properties from the node.bl_rna.properties.items() but I don't know to identify the uncommon attributes.
Also, the draw_buttons_ext seems to have this list for each node when it creates the panel, but I don't know if there is a way to access this through the ui or node objects.
The current solution I thought of was to create a list of common properties from a node object and identify the ones that don't match, but this doesn't feel like the right way to go about it.