Accept undefined for optional properties