And, when the IRI ticket is finally complete, are we going to have to introduce yet another API for getting an IRI object?
It seems to me that it would be a compatible change to have an IRI.fromString method that could do some extremely straightforward parsing - heck, even ASCII-only! - and then add support for more complex forms later. After all, we have APIs like clientFromString which explicitly support extension; the contract is just (string)->something or (string)->CantGiveYouSomething; the exact format of the string is up to modification. (Although I would suggest that once we have tests for parsing a particular form we should never _remove_ that form...)