Use add_props in the definable so lists of string props can be passed
Allow for fields without types for cases such as Closure's @inheritDoc property
Use Array for set in JS instead of Object since we don't have values