I *think* that there is an error in `PropertyOption`'s generic type. I would have expected 

    extends PropertyOptions<P>

so that when you set a property option, you are back to the property context and can chain them for the same property. Am I missing anything?