I'm still not sure what this is doing. It seems like it would break if `$value` was a scalar, since `prepareEmbeddedDocumentValue()` assumes it's an object and calls `get_class()` on it. The only use case I can imagine is if you're setting an embedded document's field name to an object. `stdClass` wouldn't work, because class metadata would not be found for it.

Would adding another segment to my test where I sent `embedded` to a new GH611EmbeddedDocument object help? I suppose we'd need to prove that the preparation takes place (e.g. an additional field with a mapped name for database storage).