The Attribute object has five fields, three of which are internal, two which should be required, and none marked as required. The only constructor should be for the required fields and nothing else. The constructor should also require any validation of nulls/empty name/values.