Brian, noticed that all your answers said to use the parent/child tests.
That makes sense if the parent child relationship is static. However, if
it's not, and your attributes are well defined there is no reason not to
select on attribute instead
In this case the parent/child relationship is well defined, but most of the
attributes are optional, and those which aren't optional are identical, so
differentiating using the attributes wouldn't work. In a different
scenario, that could well be the way to go.