Best practice for setting tags on `UsdShadeMaterial`

Hi all. Looking for some feedback on how to reason about UsdShadeMaterial inputs that aren’t connected to anything in a material’s contained shader networks.

Specifically, if I wanted to add some tagging to a material, what is the view on using inputs to do this?

bool inputs:matts_material_tags:matts_favorite_material = true

Would you argue that it’s akin to having an unused variable and code and worthy of a warning? Or is this usage neutral?

Would it be preferred to do this instead?

custom bool matts_material_tags:matts_favorite_material = true
bool userProperties:matts_material_tags:matts_favorite_material = true

Thanks for the thoughts!

I wouldn’t consider unconnected inputs an error or warning, as I can imagine situations where a common Material interface is constructed, but not all variations or instances of the Material have a use for all the inputs.

But that said, it does seem clearer to reserve inputs: for properties potentially meaningful to the consumer. For the property you give as an example, userProperties does seem appropriate, and reminds me once again that there’s a decade old TODO of adding some schema for userProperties!

Thanks for the guidance.