I'm developing a module with a widget.
I make my own widget.xml following some differents guide in the net. 

But, I've configured the widget from the back-office and I can't retrieve the widget data. It always returns NULL and all the data seem to not exists.
See the widget.xml:

    <?xml version="1.0" encoding="UTF-8"?>

    <widgets xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:noNamespaceSchemaLocation="urn:magento:module:Magento_Widget:etc/widget.xsd">
        <widget id="tata_toto_widget" class="TATA\TOTO\Block\Widget\Reco" is_email_compatible="true">
            <label translate="true">Tata Toto</label>
            <description>Tata Toto widget.</description>
            <parameters>
                <parameter name="label" xsi:type="text" required="false" visible="true">
                    <label translate="true">Label</label>
                    <description translate="true">
                        Define the title appearing above recommendations in the template.
                    </description>
                </parameter>
                <parameter name="zone_id" xsi:type="text" required="true" visible="true">
                    <label translate="true">Zone Id</label>
                </parameter>
                <parameter name="number_of_recommendation" xsi:type="text" required="true" visible="true">
                    <label translate="true">Number of recommendations</label>
                    <description translate="true">Define how many items will be shown on the template.</description>
                    <value>5</value>
                </parameter>
                <parameter name="page_type" xsi:type="select" required="true" visible="true"
                           source_model="TATA\TOTO\Model\Config\Source\PageType">
                    <label translate="true">Page type</label>
                </parameter>
                <parameter name="force_product" xsi:type="select" required="true" visible="true"
                           source_model="Magento\Config\Model\Config\Source\Yesno">
                    <label translate="true">Force product recommendation</label>
                </parameter>
                <parameter name="attribute_name_sort" xsi:type="text" required="false" visible="true">
                    <label translate="true">Attribute name to sort</label>
                    <depends>
                        <parameter name="page_type" value="Sort" />
                    </depends>
                </parameter>
                <parameter name="order" xsi:type="select" required="false" visible="true"
                           source_model="TATA\TOTO\Model\Config\Source\SortOrder">
                    <label translate="true">Order to sort</label>
                    <depends>
                        <parameter name="page_type" value="Sort" />
                    </depends>
                </parameter>
                <parameter name="group_by" xsi:type="text" required="false" visible="true">
                    <label translate="true">Group by attribute</label>
                    <depends>
                        <parameter name="page_type" value="Catalog" />
                    </depends>
                </parameter>
                <parameter name="template" xsi:type="select" required="true" visible="true">
                    <label translate="true">Template</label>
                    <description translate="true">
                        The template on which the reco will be done.
                        You can add yours in TOTO\TATA\Model\Config\Source\Template.
                    </description>
                    <options>
                        <option name="horizontal" value="TOTO_TATA::widget/horizontal.phtml" selected="true">
                            <label translate="true">Horizontal Grid Template</label>
                        </option>
                        <option name="vertical" value="TOTO_TATA::widget/vertical.phtml">
                            <label translate="true">Vertical Grid Template</label>
                        </option>
                    </options>
                </parameter>
            </parameters>
        </widget>
    </widgets>

So I linked the widget to the Block TATA\TOTO\Block\Widget\Reco, here the block's code:

    <?php
    
    namespace TATA\TOTO\Block\Widget;
    
    use Magento\Catalog\Model\ResourceModel\Product\CollectionFactory as ProductCollectionFactory;
    use Magento\Catalog\Model\ResourceModel\Product\Collection as ProductCollection;
    use Magento\Framework\View\Element\Template\Context;
    use TATA\TOTO\Model\Api\RecoApi;
    use Magento\Framework\Registry;
    
    /**
     * Class Reco
     *
     * @package TATA\TOTO
     * @author Tata Developper Team <[email protected]>
     */
    class Reco extends AbstractRecoBlock
    {
        /* @var ProductCollectionFactory */
        protected $_productCollectionFactory;
    
        /* @var ProductCollection $_productCollection */
        protected $_productCollection = null;
    
        /* @var array $options */
        public $options = array();
    
        /**
         * Reco constructor.
         *
         * @param Context $context
         * @param Registry $registry
         * @param ProductCollectionFactory $productCollectionFactory
         * @param array $data
         */
        public function __construct(
            Context $context,
            Registry $registry,
            ProductCollectionFactory $productCollectionFactory,
            array $data = [])
        {
            $this->_productCollectionFactory = $productCollectionFactory;
    
            parent::__construct($context, $registry, $data);
    
            var_dump($this->_data);
    
            // Initializing options array.
            $this->options['productBiz'] = $this->retrieveActualProducts();
            $this->options['serverUrl'] = $this->getTotoUrl();
            $this->options['tenantId'] = $this->getTenant();
            $this->options['zoneId'] = $this->getZoneId();
            $this->options['pageType'] = $this->getPageType();
            $this->options['forceProduct'] = $this->getForceProduct();
            $this->options['numberOfRecommendation'] = $this->getNumberOfRecommendation();
            $this->options['order'] = $this->getOrder();
            $this->options['groupBy'] = $this->getGroupBy();
            $this->options['attributeNameSort'] = $this->getAttributeNameSort();

            var_dump($this->options); // See the output below
        }
    // ...
    }

> array(10) { ["productBiz"]=> array(1) { [0]=> string(4) "WT09" } ["serverUrl"]=> string(33) "someUrl" ["tenantId"]=> int(157) ["zoneId"]=> NULL ["pageType"]=> NULL ["forceProduct"]=> NULL ["numberOfRecommendation"]=> NULL ["order"]=> NULL ["groupBy"]=> NULL ["attributeNameSort"]=> NULL }

All the NULL values are sets in the widget back-office. And I remove all my getX() functions for the initial "magic" function.

When I var_dump($this->_data); which is the array which must contains the widget data I have nothing.

> array(0) { }

AbstractRecoBlock (which is extended from the above given block) is now totaly empty and extends from Magento\Framework\View\Element\Template and implements Magento\Widget\Block\BlockInterface.

Here one of the guide I've following from A to Z: https://gielberkers.com/creating-widgets-in-magento-2/.

Do you have any leads?

Thanks!