Accepts 0 and undef as values on required attributes