PP
Size: a a a
PP
PP
IG
(def data {:tag/uuid "a"
           :parent {:tag/uuid "b"
                    :parent {:tag/uuid "c"}}})
(def nodes 
  (tree-seq (fn [node]
            (-> node :parent some?))
          (fn [node]
            (-> node :parent vector))
          data))
(map :tag/uuid nodes)
("a" "b" "c")AC
(def data {:tag/uuid "a"
           :parent {:tag/uuid "b"
                    :parent {:tag/uuid "c"}}})
(def nodes 
  (tree-seq (fn [node]
            (-> node :parent some?))
          (fn [node]
            (-> node :parent vector))
          data))
(map :tag/uuid nodes)
("a" "b" "c")PP
IG
IG
PP
IG
PP
IG
AC
PP
AC
AC
AC
T
T

(defn collect-uuids [data]
 (loop [acc  []
        node data]
  (let [r (conj acc (:tag/uuid node))]
   (cond-> r
    (some? (:parent node))
    (recur (:parent node))))))AC
DL

(defn collect-uuids [data]
 (loop [acc  []
        node data]
  (let [r (conj acc (:tag/uuid node))]
   (cond-> r
    (some? (:parent node))
    (recur (:parent node))))))(defn collect-uuids [data]
(loop [acc []
{:keys [tag/uuid parent]} data]
(let [r (conj acc uuid)]
(if parent
(recur r parent)
r))))