docs: @Nullable
    final Expression getValueCoercion(Expression value, Generator codeGenerator) {
      boolean needsProtoCoercion = coercionStrategies.contains(ValueCoercionStrategy.PROTO);
      if (!needsProtoCoercion) {
        return null;
      }
      Expression coercion =
          value.castAs("?").dotAccess("$jspbMessageInstance").or(value, codeGenerator);
      return coercionStrategies.contains(ValueCoercionStrategy.NULL)
          ? value.and(coercion, codeGenerator)
          : coercion;
    }