code: public function finish() {
          parent::finish();
          if ($this->isRowActionsEnabled() && !$this->hasValueViewer(static::ROW_ACTIONS_COLUMN_NAME)) {
              $this->addValueViewer(static::ROW_ACTIONS_COLUMN_NAME, null);
          }
          if ($this->isNestedViewEnabled() && !$this->hasValueViewer($this->getColumnNameForNestedView())) {
              $this->addValueViewer($this->getColumnNameForNestedView(), DataGridColumn::create()->setIsVisible(false));
          }
          if ($this->isRowsReorderingEnabled()) {
              $reorderingColumns = $this->getRowsPositioningColumns();
              $allowedColumnTypes = [Column::TYPE_INT, Column::TYPE_FLOAT, Column::TYPE_UNIX_TIMESTAMP];
              foreach ($reorderingColumns as $columnName) {
                  if (!$this->hasValueViewer($columnName)) {
                      throw new NotFoundException(
                          "Column '$columnName' provided for reordering was not found within declared data grid columns"
                      );
                  }
                  $valueViewer = $this->getValueViewer($columnName);
                  if (!$valueViewer->isLinkedToDbColumn() && $valueViewer->getTableColumn()->isItExistsInDb()) {
                      throw new \UnexpectedValueException(
                          "Column '$columnName' provided for reordering must be linked to a column that exists in database"
                      );
                  }
                  $colType = $valueViewer->getTableColumn()->getType();
                  if (!in_array($colType, $allowedColumnTypes, true)) {
                      throw new \UnexpectedValueException(
                          "Column '$columnName' provided for reordering should be of a numeric type (int, float, unix ts)."
                          . "'{$colType}' type is not acceptable'"
                      );
                  }
                  $valueViewer->setIsSortable(true);
              }
          }
      }
docs: Finish building config.
  This may trigger some actions that should be applied after all configurations were provided