specify optional and required attributes in table definition. Throw an error if a required attribute isn't specified at startup