New features
* feat: LayoutBuilder in Numba by ianna in https://github.com/scikit-hep/awkward/pull/2408
* feat: move string features into core by agoose77 in https://github.com/scikit-hep/awkward/pull/2547
* feat: add new `__list__` parameter for list-based array types by agoose77 in https://github.com/scikit-hep/awkward/pull/2549
* feat!: deprecate string behavior classes by agoose77 in https://github.com/scikit-hep/awkward/pull/2528
* feat!: apply retroactive deprecations by agoose77 in https://github.com/scikit-hep/awkward/pull/2566
Bug fixes and performance
* fix: support dict-likes in form.from_dict, convert fields to list by agoose77 in https://github.com/scikit-hep/awkward/pull/2548
* fix: check validity error properly by agoose77 in https://github.com/scikit-hep/awkward/pull/2550
* fix: string broadcasting by agoose77 in https://github.com/scikit-hep/awkward/pull/2552
* fix: make C++ LayoutBuilder API consistent with the Numba's by ianna in https://github.com/scikit-hep/awkward/pull/2553
* fix: convert unknown-length to index in `ListOffsetArray.to_RegularArray` by agoose77 in https://github.com/scikit-hep/awkward/pull/2560
* fix: prefer known to unknown lengths in broadcasting by agoose77 in https://github.com/scikit-hep/awkward/pull/2561
* fix: broadcasting of regular strings by agoose77 in https://github.com/scikit-hep/awkward/pull/2564
* fix: restore NEP-18 overloads for concatenate and where by agoose77 in https://github.com/scikit-hep/awkward/pull/2567
Other
* chore: update pre-commit hooks by pre-commit-ci in https://github.com/scikit-hep/awkward/pull/2532
* chore: update pyodide parts a bit by henryiii in https://github.com/scikit-hep/awkward/pull/2538
* chore: move C++ format configuration by agoose77 in https://github.com/scikit-hep/awkward/pull/2554
* chore: drop Python 3.7 by agoose77 in https://github.com/scikit-hep/awkward/pull/2557
* chore: ruff moved to astral-sh by henryiii in https://github.com/scikit-hep/awkward/pull/2562
* chore: target-version no longer needed by Black or Ruff by henryiii in https://github.com/scikit-hep/awkward/pull/2563
* chore(deps): bump pypa/gh-action-pypi-publish from 1.8.6 to 1.8.7 by dependabot in https://github.com/scikit-hep/awkward/pull/2546
* ci: cap `pydantic<2` to fix WASM build by agoose77 in https://github.com/scikit-hep/awkward/pull/2558
* refactor: drop unused `if` by agoose77 in https://github.com/scikit-hep/awkward/pull/2543
**Full Changelog**: https://github.com/scikit-hep/awkward/compare/v2.2.4...v2.3.0