We currently have around a dozen composite projects, which all use the same set of API. The reason we use so much projects instead of a single big one is for performance reasons.
When an API change (adding a new method, adding a parameter, etc) we thus have to update the API of each of the projects manually. We currently work around that by using symlinks, but this solution is clunky at best.
To prevent that, we would like some way to "share" the API definitions between multiple projects, having the API described in a single place and useable by all other projects.
The choosen solution should be compatible with version-control systems (e.g. something we can submit / check out), so any employee with a fresh computer can simply check-out the project(s) and start working without any extra configuration.