Now uses Optional instead of empty string to denote an optional field.