Similar to T402569: [jobs-api] handle non-passed arguments and defaults consistently, handle all the fields for tool config like this:
- Make them non-nullabale
- Add dummy defaults for them, they don't matter, will never be persisted or passed along
- When storing the config, strip fields that were unset model_dump(exclude_unset=True) (see https://docs.pydantic.dev/1.10/usage/exporting_models/ for difference with exclude_defaults)
- When returning the config, strip unset
This helps keep all the config fields non-nullable, and still use the builds-api/jobs-api defaults when the fields are not passed by the user.