@beberlei but it's not properly validated. Is it "foo" or "bar" that is wrong? I describe some of my concerns below.

@schmittjoh I see a problem with this. There's no way to differ a field from an embedded (and this is a huge problem IMHO).
Also, "user.location.geo.latitude" doesn't seem to be supported.
Finally, Embeddeable ClassMetadata is created purely for 3rd-party consumers, but never consumed internally on DQL, Hydrator, Persister, etc.
It seems to me we're relying on an unintentional support to build a big feature which may bring a lot of headaches in the future.