I think if we keep "depth" stuck on the roots, we should use the word "generations" here.

The plural name indicates to me that it expects an array or returns an array of that value, not of model entities.

Perhaps break this into two scopes, ```with_generation``` and ```with_max_generation```? 

Like, ```descendants.with_max_generation(3)```?