Do not expose Netty data types in public APIs
What is not easy to do right now?
It is not easy to replace Netty by a different library, or to contemplate a Scala Native version of ZIO HTTP.
Describe the solution you'd like
Ensuring that no Netty data types are exposed in the public API. Any Netty data types used internally can be made private or package private, while any Netty data types that a user must interact with can be wrapped in data types that leak minimal details about the implementation of said data type.
Why is it important?
Avoiding leaking Netty helps improve the long-term stability of the API, and open up the door to running on Scala Native.
I am seeing this cause issues in the wild as users are writing things that will exhaust ref counts and cause unpredictable behavior.