Acho que usar o
inline
tag de campo é a melhor opção para você. A documentação do mgo/v2/bson afirma:inline Inline the field, which must be a struct or a map,
causing all of its fields or keys to be processed as if
they were part of the outer struct. For maps, keys must
not conflict with the bson keys of other struct fields.
Seu struct deve então ser definido da seguinte forma:
type Cube struct {
Square `bson:",inline"`
Depth int
}
Editar
inline
também existe em mgo/v1/bson
caso você esteja usando esse.