public function getMandatoryProperty($property)
    {
        \Assert\that($property)->string()->notEmpty();

        if (isset($this->description->{$property}) === false) {
            throw InvalidDescriptionException::missingMandatoryProperty($property);
        }

        if ($this->description->{$property} instanceof \stdClass) {
            return new static($this->description->{$property});
        }

        return $this->description->{$property};
    }