Generalized support for custom property types