Let A be an object derived from another object B by replacing some of the (possibly nested) values of B by their hash_tree_root.
Because of this substitution, hash_tree_root(A) == hash_tree_root(B).
We say A is a "summary" of B, and that B is an "expansion" of A. The replaced values are the "details" of B with respect to A.
Summary instances expand to at most one instance of a given expansion: the detail of the summary is a strict subset of that of the expansion and the difference cannot be altered without changing the summary root.
A summary type can be defined by taking the expansion and substituting the types of the elements to summarize with Bytes32 to reflect their hash_tree_root.
Or vice versa an expansion can be defined based on a summary type.