public function getSpecialFields()
    {
        $cached = $this->cache['special_fields'] ?? null;
        if ($cached !== null) {
            return $cached;
        }

        $model = $this->model_class;
        $special = [
            'PRIMARY_KEY' => $model::PRIMARY_KEY,
            'AUTO_INCREMENT' => (array) $model::AUTO_INCREMENT,
            'STAMP_COLUMNS' => $model::STAMP_COLUMNS,
            'OPTIONAL_COLUMNS' => $model::OPTIONAL_COLUMNS,
            'FOREIGN_KEYS' => array_keys($model::FOREIGN_KEYS),
            'SOFT_DELETE' => (array) $model::SOFT_DELETE,
        ];

        $this->cache['special_fields'] = $special;
        return $special;
    }