The flow should return an appropriate Net::Inspect::Connection object if it does implement the protocol. If it does not implement the protocol it should detach itself from the $guess flow using $guess->attach(undef,$self) and return (). If it needs more data to decide it should simply return ().

The hook must do it's own buffering of the given data and process them before returning itself as the protocol handler.

The hooks in and fatal gets forwarded to the protocol implementing object once it is found.