Add optional attributes

* Optional attributes will not be included in public attribute listings
unless set in server response or locally. Therefore they cannot have a
default value.
At the moment we get the straight effect that the current behavior behave as a `default: nil` option but default option are prevented even if we try to pass `default: nil`