code: public ProtoAdapter<Object> protoAdapter(String typeName, boolean includeUnknown) {
      Type type = getType(typeName);
      if (type == null) throw new IllegalArgumentException("unexpected type " + typeName);
      return new SchemaProtoAdapterFactory(this, includeUnknown).get(type.type());
    }
docs: Returns a wire adapter for the message or enum type named {@code typeName}. The returned type
  adapter doesn't have model classes to encode and decode from, so instead it uses scalar types
  ({@linkplain String}, {@linkplain okio.ByteString ByteString}, {@linkplain Integer}, etc.),
  {@linkplain Map maps}, and {@linkplain java.util.List lists}. It can both encode and decode
  these objects. Map keys are field names.
  
  @param includeUnknown true to include values for unknown tags in the returned model. Map keys
  for such values is the unknown value's tag name as a string. Unknown values are decoded to
  {@linkplain Long}, {@linkplain Long}, {@linkplain Integer}, or {@linkplain okio.ByteString
  ByteString} for {@linkplain com.squareup.wire.FieldEncoding#VARINT VARINT}, {@linkplain
  com.squareup.wire.FieldEncoding#FIXED64 FIXED64}, {@linkplain
  com.squareup.wire.FieldEncoding#FIXED32 FIXED32}, or {@linkplain
  com.squareup.wire.FieldEncoding#LENGTH_DELIMITED LENGTH_DELIMITED} respectively.