Subscribtions in IAP on Android are returned confusingly by the official IAP plugin

I have defined one subscription on PlayStore with 2 Base plans. When I query for the product details, I first got bitten that I tried to query for the base plans and not for the subscription. Once I figured this out I now a bit confused by the result that I get:

When querying for 1 subscription which has 2 base plans I get two separate GooglePlayProductDetails with price of the each base plan and both contain the same list of SubscriptionOfferDetailsWrapper
This seems completely convuluted to be honest.

On the top level of each entry I have no idea which subscribption each would be because only the price differ

Each contain the same list

which finally contains the billing period and price and for each base plan and its id

It doesn’t seem to make any sense to return two toplevel objects if I only query for one subcription

Ok on further analysis this is what happens in this function here:

  /// Generates a list of [GooglePlayProductDetails] based on an Android
  /// [ProductDetailsWrapper] object.
  ///
  /// If [productDetails] is of type [ProductType.inapp], a single
  /// [GooglePlayProductDetails] will be constructed.
  /// If [productDetails] is of type [ProductType.subs], a list is returned
  /// where every element corresponds to a base plan or its offer in
  /// [productDetails.subscriptionOfferDetails].
  static List<GooglePlayProductDetails> fromProductDetails(
    ProductDetailsWrapper productDetails,
  ) {
    if (productDetails.productType == ProductType.inapp) {
      return <GooglePlayProductDetails>[
        GooglePlayProductDetails._fromOneTimePurchaseProductDetails(
            productDetails),
      ];
    } else {
      final List<GooglePlayProductDetails> productDetailList =
          <GooglePlayProductDetails>[];
      for (int subscriptionIndex = 0;
          subscriptionIndex < productDetails.subscriptionOfferDetails!.length;
          subscriptionIndex++) {
        productDetailList.add(GooglePlayProductDetails._fromSubscription(
          productDetails,
          subscriptionIndex,
        ));
      }

      return productDetailList;
    }
  }

IMHO this is not helpful at all because creates each basePlan or offer as a toplevel product but without the needed details that you then have to extract from the subscriptionOfferDetails anyway. It would make way more sense to add just one Productdetails as this would be less confusing. As it is now I have to collect all the entries that belong to one parent subscription or I have at least to ignore the additional entries.

Does anyone know the reason why this is returned like this? I also asked the same in an existing github issue