The raw JSON data is passed in the entry point implements RequestStreamHandler. Since this gives access to the raw JSON data, we can handle JSON deserialization ourselves and then support calling into either RequestHandler or just forwarding the streams to RequestStreamHandler.
This will have the advantage of doing JSON deserialization any way we want rather than forcing how Amazon does it.
This will break compatibility if any other code uses GenericAWSRequestHandler as a RequestHandler (a wrapper on top of IOpipe?).
This should be researched.