public static function loadPricingOptionsFromRequestOptions($options)
    {
        $priceOptions = [];

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makePricingOptionForValidatingCarrier($options->validatingCarrier)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makePricingOptionForCurrencyOverride($options->currencyOverride)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makePricingOptionFareBasisOverride($options->pricingsFareBasis)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makePricingOptionFareFamilyOverride($options->fareFamily)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadCorpNegoFare($options->corporateNegoFare)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadCorpUniFares($options->corporateUniFares, $options->awardPricing)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadObFees($options->obFees, $options->obFeeRefs)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadPaxDiscount($options->paxDiscountCodes, $options->paxDiscountCodeRefs)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadPointOverrides(
                $options->pointOfSaleOverride,
                $options->pointOfTicketingOverride
            )
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadPricingLogic($options->pricingLogic)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadTicketType($options->ticketType)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadTaxes($options->taxes)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadExemptTaxes($options->exemptTaxes)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadPastDate($options->pastDatePricing)
        );


        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadFormOfPayment($options->formOfPayment)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::loadReferences($options->references)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makeOverrideOptions($options->overrideOptions, $priceOptions)
        );

        $priceOptions = self::mergeOptions(
            $priceOptions,
            self::makeOverrideOptionsWithCriteria($options->overrideOptionsWithCriteria, $priceOptions)
        );

        // All options processed, no options found:
        if (empty($priceOptions)) {
            $priceOptions[] = new PricingOptionGroup(PricingOptionKey::OPTION_NO_OPTION);
        }

        return $priceOptions;
    }