public DocumentProtocol putRoutableFactory(int type, RoutableFactory factory, VersionSpecification version) {
        routableRepository.putFactory(version, type, factory);
        return this;
    }
Adds a new routable factory to this protocol. This method is thread-safe, and may be invoked on a protocol object
that is already in use by a message bus instance. Notice that you must explicitly register a factory for each
supported version. You can always bypass this by passing a default version specification object to this function,
because that object will match any version.

@param type    the routable type to assign a factory to
@param factory the factory to add
@param version the version for which this factory can be used
@return this, to allow chaining
documentapi/src/main/java/com/yahoo/documentapi/messagebus/protocol/DocumentProtocol.java