Yeah, I have mixed feelings about all of them.  Probably the best design (eventually, not needed now) is something where we "preflight" all the metadata with the server before uploading anything?  I guess there's a tradeoff between "should we avoid any network roundtrips if the package doesn't even build" vs "should we avoid a potentially slow compilation if the metadata is blatantly bad". 