Found an article to explain the difference between nullable and optional in OpenAPI 3. But it's in Japanese.
I hate Katakana.
レスポンス -> Response
データ -> Data
プロパティ->Property
オプショナル->Optional
Just slap them into Google translator and listen how they sound like.
Then you will likely to ask yourself: Why?
----
And just find out if you force Google translator to speak English in Japanese, you get the typical stereotype sounds of how Japanese people speak English.
BTW, I think in Java, optional is more or less equivalent to null. But Java doesn't tell you if a field can or cannot be null. You're going to find out when you run the code. That's one of the reasons why I prefer Kotlin. The type `T` means it must not be null. If you want nullable types, you must write `T?`.
And I don't know why, Google recommend me a lot of Japanese articles when I search OpenAPI related stuff.