Conditionals in a gemspec are even worse than conditionals in a Gemfile. Not to mention that conditional gemspecs are GUARANTEED to produce conditionally-different Gemfile.locks, and we all despise those.

If mswin needs exactly json 1.4.6, then why don't we simply declare that right_agent needs exactly 1.4.6, until we can fix the underlying problem?

Ditto with msgpack, as far as I am concerned.

The commandment from on high -- in the RubyGems AND bundler worlds -- is: "thou shalt depend on the same version of a gem regardless which platform thou art on."

It's OK to declare platform-specific dependencies, but if a gem be required, then it should be the same version on all platforms.