public static function hydrate(array $data)
    {
        return new self(
            $data['token'],
            $data['table'],
            KeySet::fromArray($data['keySet']),
            $data['columns'],
            $data['options']
        );
    }