Bug description When using ModelOptionsUtils.merge(runtimeOptions, this.defaultOptions, DefaultToolCallingChatOptions.class), an exception is thrown:
IllegalArgumentException: No @JsonProperty fields found in the org.springframework.ai.chat.tool.DefaultToolCallingChatOptions
The root cause is that ModelOptionsUtils scans for @JsonProperty annotations on all option classes, but DefaultToolCallingChatOptions does not declare any such annotations. This mismatch causes the merge process to fail when using custom model integrations.
Environment
Spring AI version: 1.0.1 (includes master branch)
Steps to reproduce Create a custom chat model implementation that uses DefaultToolCallingChatOptions as default options.
Call: ModelOptionsUtils.merge(runtimeOptions, this.defaultOptions, DefaultToolCallingChatOptions.class);
Observe the exception.
Since it is default, then when I want to integrate the model into spring-ai myself, I don't want to customize it, why don't I use the default? Otherwise, what is the meaning of providing a default implementation?