1. Software using Semantic Versioning MUST declare a public API. This API could be declared in the code itself or exist strictly in documentation. However it is done, it should be precise and comprehensive.
I know it's a derivative of Semantic Versioning, but this should probably be corrected.