Notable changes
- **Response markers** allow transforming response payload before validating it with a model. This release includes the basic built-in [`Map`](https://kpn.github.io/combadge/support/core/#combadge.core.markers.response.Map) and [`StatusCodeMixin`](https://kpn.github.io/combadge/support/http/#combadge.support.http.markers.response.StatusCodeMixin) markers as a proof-of-concept. More response markers will be added before `3.0.0` to restore similar functionality from `2.x`
- Preparation work to [**reduce coupling to Pydantic**](https://github.com/kpn/combadge/issues/77). **Simple response types**, which are not data classes or models, **are already supported** without a need to wrap them into `BaseModel`
- Fixed the critical bug when Combadge [**failed on non-dict responses**](https://github.com/kpn/combadge/issues/58)
- Re-organized documentation
Migrating `Protocol` classes from `2.x`
- Replace `Json` and `JsonField` markers with `Payload` and `Field`, correspondingly
- Replace `StatusCode`, `Content`, and `Reason` pseudo-fields with response markers
All changes
💥 Breaking changes
* BREAK: refactor `BaseBackendRequest` by eigenein in https://github.com/kpn/combadge/pull/66
* BREAK: refactor request mixins and markers by eigenein in https://github.com/kpn/combadge/pull/67
* BREAK: get rid of the marker shortcuts 🧚 by eigenein in https://github.com/kpn/combadge/pull/72
* BREAK: redesign response markers by eigenein in https://github.com/kpn/combadge/pull/84
* BREAK: make marker interfaces more consistent with each other by eigenein in https://github.com/kpn/combadge/pull/85
⚡️ Improvements
* OPT: group request preparers by their corresponding parameters by eigenein in https://github.com/kpn/combadge/pull/71
* NEW: support response markers on HTTPX and Zeep by eigenein in https://github.com/kpn/combadge/pull/73
* NEW: implement the basic response markers by eigenein in https://github.com/kpn/combadge/pull/74
* OPT: re-organize the docs by eigenein in https://github.com/kpn/combadge/pull/75
* NEW: support Python 3.12 by eigenein in https://github.com/kpn/combadge/pull/78
* NEW: test on PyPy 3.10 by eigenein in https://github.com/kpn/combadge/pull/79
* BREAK: add the `Map` core response marker by eigenein in https://github.com/kpn/combadge/pull/80
* NEW: markers `GetItem`, `Drop`, `ReasonPhraseMixin`, `TextMixin`, and `StatusCode` by eigenein in https://github.com/kpn/combadge/pull/83
🐛 Fixes
* FIX: test a non-dictionary response, resolves 58 by eigenein in https://github.com/kpn/combadge/pull/81
🎨 Other changes
* OPT: Update all non-major dependencies ⬆️ by renovate in https://github.com/kpn/combadge/pull/63
* OPT: extract `combadge.core.BaseRequest` by eigenein in https://github.com/kpn/combadge/pull/65
* OPT: refactor `Signature` by eigenein in https://github.com/kpn/combadge/pull/69
* OPT: missing return type does not need to be wrapped into `RootModel` by eigenein in https://github.com/kpn/combadge/pull/70
* OPT: replace `RootModel` with `TypeAdapter` by eigenein in https://github.com/kpn/combadge/pull/76
* OPT: remove `RootModel` where it is unnecessary by eigenein in https://github.com/kpn/combadge/pull/82
* OPT: add `override` decorators and fix `pytest` imports by eigenein in https://github.com/kpn/combadge/pull/86
* OPT: Update all non-major dependencies ⬆️ by renovate in https://github.com/kpn/combadge/pull/87
**Full Changelog**: https://github.com/kpn/combadge/compare/2.0.1...3.0.0