EDIT 2 Based on the edited question
checkout_cart_product_add_after send 2 parameters.
So I guess that you can get the options either from the QuoteItem or Product as well.
public function execute(EventObserver $observer)
$quoteItem = $observer->getEvent()->getQuoteItem();
$options = $quoteItem->getOptions();
// Do something with options
If you are trying to get the options from a loaded Quote / QuoteItem you can call:
But if you need to load options outside a quote or an specific quote_item you can use
Magento\Quote\ResourceModel\Item\Option\Collection to grab such data.
ORIGINAL ANSWER (Completely Wrong) but may be useful for someone.
Looking in the database seems like
sales_order_item_options doesn't exists anymore but now there is a
product_options text field in the
sales_order_item so I guess that the product options should be saved (serialized) there.
Try to load
Or if you have already loaded the Order Model try to get them by calling
Hope my idea helps