Depending upon use case, it's often nice to have builder methods pass in the raw field rather than an Optional. e.g.


    public Builder withLicenceAccepted(DateTime licenceAccepted) {
        this.licenceAccepted = Optional.fromNullable(licenceAccepted);
        return this;
    }