> Introducing @JsonbRequired allows us to cover all use cases the convenient way.
Well, as mentionned and as you explained, it was not a feature and it is still not under scope so why forcing it?
> Global switch is an acceptable solution for implementations but not for specifications.
It is the only way to mitigate the upgrade, all other options require code changes which is as just having a breaking change there without any measure - and there it can be fine.
> How will you deal with the use case when you actually want @JsonbParameters parameters to be present?
@JsonbCreator public static MyType of(String requiredValue) { requireNonNull(requiredValue); }
It is similar, if I want to be 1-1 I can throw a JsonbException - but when you use such a feature you want a specific exception + aggregating all errors to report properly.
If you want it lower level - but it is rare even if it exists - you just wrap the parser as I explained earlier or use a JsonSchema validator on the JsonObject if it is ok for your use case.
> Again, we cannot release a feature with uncovered use cases.
Well, hopefully it is not true otherwise we would need to handle JSON-Schema, records, integration with bean validation, etc... ;).
Joke apart, validating the presence of an attribute in the incoming payload never had been a feature of JSON-B, it was a side effect of not being able to instantiate a class when some values were missing and a shortcut we took in 1.0 where @JsonbCreator was half backed because we were not sure of its future.
Now we are fixing it and widening it. Either we enable to restore previous behavior with a property if we fear people were using it or we say it is ok to break there - and, once again, I think it is and you mentionned it too - but we don't need to add at the same time a new feature which does not seem to be validated widely - from the tickets it seems you are 2 to push it only?
So let's drop that @jsonbrequired annotation which kind of just add noise to the spec and focus on user oriented features and feedback please, it is more than sufficient for next release IMHO.
Also, in terms of design, there is no real way a proper validation solution is done outside of JSON-P so it would be a pain to end with something inconsistent - in particular due to our JsonbConfig which enables to plug a custom JSON-P provider. So let's postpone this presence validation and handle it when JSON-P would enable it maybe? Can also let us time to see what users request in terms of validation and adjust more accurately if needed than trying to guess which generally ends in being wrong - not saying it for you particularly, I did that too ;).