Support for passing a struct to a document instead of map[string]interface{}

But we still want to verify that fields is either a map or a struct.