NIOHTTP2 documentation lacking critical information about channels

the original problem i was having was how to inject events into a NIOHTTP2AsyncSequence. however, while trying to figure out the solution on my own, i find that the documentation for NIOHTTP2 is really, really deficient.

i was trying to modify a call to

configureAsyncHTTPServerPipeline
{
    (connection:any Channel) in

    connection.eventLoop.makeCompletedFuture
    {
        ...
        return try NIOAsyncChannel<
            HTTPPart<HTTPRequestHead, ByteBuffer>,
            HTTPPart<HTTPResponseHead, ByteBuffer>>.init(
            wrappingChannelSynchronously: connection,
            configuration: .init())
    }
}
    http2ConnectionInitializer:
{
    (connection:any Channel) in

    connection.eventLoop.makeCompletedFuture { connection }
}
    http2StreamInitializer:
{
    (stream:any Channel) in

    stream.eventLoop.makeCompletedFuture
    {
        try NIOAsyncChannel<
            HTTP2Frame.FramePayload,
            HTTP2Frame.FramePayload>.init(
            wrappingChannelSynchronously: stream,
            configuration: .init())
    }
}

but i could not determine from the documentation what kind of Channel the http2ConnectionInitializer actually receives. what is its OutboundIn? what can i pass to its Channel.write(_:promise:)?

from experimentation, it told me it expects an HTTPFrame:

NIOCore/NIOAny.swift:200: 
Fatal error: tried to decode as type HTTP2Frame but found Optional<Never> with contents other(nil)

i opened a pull request to update the documentation for that parameter with this information.

can we please get some documentation about the types of channels these APIs provide? there are more of them with every SwiftNIO releaseā€¦