defines the getter for the property (and optional aliases)
defines the setter for the property (and optional aliases)
This is not a thread safe operation, if you have to set new properties at runtime make sure to use a mutex.
[Validate]