class ProtoCoder extends CustomCoder<T> {

  public static <T extends Message> ProtoCoder<T> of(Class<T> protoMessageClass) {
    return new ProtoCoder<>(protoMessageClass, ImmutableSet.of());
  }

  protected  ProtoCoder(Class<T> protoMessageClass, Set<Class<?>> extensionHostClasses);

}