You can clone with
No one assigned
BaseClient#declareType should support a URI as its schema parameter. That way the schema can be kept in a separate file than the module and possibly included from a public location.
External schemas should still be included inline after the build process, so that we don't impose additional requests for that.
I was actually talking about making usage of schema definition files the standard required way of doing things, not some optional parameter. If that's the case, it can be used with naming conventions and doesn't require a URI parameter.
Also, it would be much better to have all of the "core-approved" production-ready data types in a single directory in the same repo, not scattered around GitHub in module repos. As I said elsewhere, most of the time you don't even need any special module or module-specific functions – instead the schema is the most important definition for a category.