Adding both of these to the public API like this significantly dilutes the encapsulation of the class.  It would be much better to either make them private -- and have the spec tests use send -- or even have the spec tests use `instance_variable_get` to read the content.  That isn't any more coupled to the implementation than the current version, which just throws this internal model out into the spec tests anyhow.

An alternative, which is more work, and which I can see no compelling advantage for, would be to define a private or public API that returned the actual data the spec tests need -- which, in the general case, would be "what are the names of the attributes that are required", and "what are the sets of attributes of which one (or more) are required", etc.