In order for PushCommitAuthor to be it's own type (per my above comment), it seems that PushCommit will need to be its own type as well... so again, let's go with your original design.  I think I do still want to continue using a single type for simple cases where the API is just returning a partial representation of the same resource (as discussed on #3).  But for cases like PushCommitAuthor where there really is a semantic distinction between the types, you're both right that separate types are warranted.  Does that seem like a reasonable approach?  

@ktoso: I haven't looked at the Trees API close enough yet to know which side it falls on.  If you're unsure based on my comment above, let's discuss.