API development is both fun and challenging task. While it is impossible to foresee all possible usage and needs, developers could invest resources making the API as much future proof as possible.
Ignoring future proofing has its cost where new needs introduces ugly new APIs deprecating the old API and the maintenance overhead associated with it like publishing a new library, release notes etc. This theoretical idea is often missed in closed source projects. Here is one such API,
abstract fun getDescription() : Int
It is an android API taking a string resource as an identifier. This meets most of the usage until there was a need to support HTML formatted strings. The API now needed to be updated to return String rather than an Int. While the change was trivial, it forced a deprecation and inconvenience for clients that are still using it without any format requirements.
Cost associated with good API design like multiple reviews tends to pay for itself on a long run.