Description
Some of these were created in runtime because that's where the code that used them originated, but locating them there requires depending on the entire runtime jar. Instead, we should have a set of exceptions defined in the API that users can both rely on and use in their own code without additional dependencies.