✨ Features and improvements
- Add a RenderPool to render tiles onto textures for 3D ([1671](https://github.com/maplibre/maplibre-gl-js/pull/1671))
- Add map.getCameraTargetElevation() ([1558](https://github.com/maplibre/maplibre-gl-js/pull/1558))
- Add `freezeElevation` to `AnimationOptions` to allow smooth camera movement in 3D ([1514](https://github.com/maplibre/maplibre-gl-js/pull/1514), [#1492](https://github.com/maplibre/maplibre-gl-js/issues/1492))
- ⚠️ Breaking - Remove deprecated `mapboxgl-` css classes ([1575](https://github.com/maplibre/maplibre-gl-js/pull/1575))
- Add map.setStyle's transformStyle option ([1632](https://github.com/maplibre/maplibre-gl-js/pull/1632))
- ⚠️ Breaking - Improve rendering of areas below sea level, and remove elevationOffset workaround ([1578](https://github.com/maplibre/maplibre-gl-js/pull/1578))
- ⚠️ Breaking - Move terrain object from style.terrain to map.terrain ([1628](https://github.com/maplibre/maplibre-gl-js/pull/1628))
🐞 Bug fixes
- ⚠️ Breaking - Make geojson data source a required field to align with the docs ([1396](https://github.com/maplibre/maplibre-gl-js/issue/1396))
- Fix showTileBoundaries to show the first vector source [1395](https://github.com/maplibre/maplibre-gl-js/pull/1395)
- Fix `match` expression type ([1631](https://github.com/maplibre/maplibre-gl-js/pull/1631))