Currently the bson.D type family is in the bson package, but this means that no package below the bson package can handle decoding nor encoding into a BSON Document nor bson Array without the user providing additional ValueDecoder or ValueEncoder. Moving the bson.D type family to the primitive package will provide type for BSON Document and Array.
To ease usage, add a type alias for primitive.D, primitive.M, and primitive.A to the bson package.