## Additions
The major addition this time around is the Endec serialization framework, an interoperable alternative to Mojang's own Codec. As outlined in the changes section, this supersedes a bunch of older owo APIs as well - notably networking. To get started with endec, check out the newly written documentation: https://docs.wispforest.io/owo/endec/
## Changes
- `NbtKey` and all associated API has been removed entirely in favor of the new, Endec-based and functionally extremely similar `KeyedEndec` used in conjunction with `MapCarrier` (which is interface-injected onto the same classes as `NbtCarrier` used to be)
- `PacketBufSerializer` has been removed in its entirety and all dependent API updated to use Endecs instead. For writing data directly to a network buffer like the old API used to allow, use the equivalent Endec (potentially obtained from the `ReflectiveEndecBuilder`) together with the interface-injected `PacketByteBuf#write(Endec, Object)` and `PacketByteBuf#read(Endec)`
- As a consequence of the update to 1.20.3+, the custom text API has been simplified. Because the vanilla changes make them redundant, `CustomTextContent` along with `CustomTextContentSerializer` no longer exist - instead, simply implement the vanilla `TextContent` interface, create a `TextContent.Type` with the appropriate codec and register said type in the `CustomTextRegistry` as before
## Fixes
- `ScissorStack` now clamps the width/height passed to `glScissor` to prevent causing OpenGL errors in contexts with funky transformations
- All buffers in the draw context used for layers are now forcefully flushed before the layer is rendered to stop tooltips going missing due to scissoring in the layer
- Forcefully flush all buffers after drawing an owo-ui tooltip (similar issues as above)
---
Finally, the following previously deprecated API elements have been removed:
- `BaseParentComponent#mountChild`, use the new two-argument version instead to prevent unnecessary inflations
- `ParentComponent#collectChildren`, replaced by the more appropriately named but functionally identical `ParentComponent#collectDescendants`
- `OwoItemGroup#setSelectedTab`, `OwoItemGroup#getSelectedTab` and `OwoItemGroup#getSelectedTabIndex` - use the new equivalents which are aware that multiple tabs can be selected
- `NinePatchRenderer` and `OwoNinePatchRenderers`, long-replaced by `NinePatchTexture` and `OwoNinePatchTextures`
Developer information
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle.
maven { name = "Modrinth"; url = "https://api.modrinth.com/maven" }