ported: default values, validation, field ordering