[TODO] implement a way to add specific rules for properties in components
[TODO] add debug functions
[TODO] copy property metadata from hidden properties as well