Let me explain why a tag is vital vs custom properties.
I’m building an integration with HubSpot. I have code that creates a Contact and I want a way to transfer custom properties on my system over to the HubSpot contact. As things stand, I can create custom properties but I have no way to enforce that they exist on HubSpot and if they don’t, contact creation fails completely. This would be so easy if there were a property, present on all types called “tags” which allows a list of string values.