- examples, they are a pain to write in Java annotations.
- multiple responses, ok, invalid id, not found, etc.
- good descriptions, you can write descriptions in annotations (particularly post Java 14) but they are overly verbose.
- validations, you can use bean validation, but if you implement the logic in code it's not easy to add that to the generated spec.
See for example this from springfox https://github.com/springfox/springfox/blob/master/springfox...
It's overly verbose and the generated open API spec is not very good.