public function withStructure(callable $structureDefinitionCallback) : TableViewsDefiner
    {
        /** @var string|TypedObject $objectType */
        $objectType = $this->data->getObjectType();
        $definition = new ObjectTableDefinition($objectType::definition());

        $structureDefinitionCallback($definition);

        return new TableViewsDefiner($this->name, $this->callback, new ObjectTableDataSource(
                $definition->finalize(),
                $this->data
        ));
    }