     :initial-signal component-signal
 
     ; list of [id signal]
-    :signals        (list)
+    :signal-events  (list)
     :next-signal-id 0
 
     ; list of {id source-signal-id enabled? action}
-    :actions        (list)
+    :action-events  (list)
     :next-action-id 0
 
     :persist?       false}

    [model action]
    (match action
           :clear-history
           (assoc model :signals (list)
                        :actions (list))

           [:record-signal-event signal-event]
           (-> model
               (update :signals concat [signal-event])
               (update :next-signal-id inc))

           [:toggle-action id]
           (-update-action model id update :enabled? not)

           :replay
           ; applies enabled recorded actions to the initial component model
           (assoc model :component
                        (reduce component-reconcile
                                (:initial-model model)
                                (->> (:actions model)
                                     (filter :enabled?)
                                     (map :action))))


                                                                       :-unknown-signal)]
             (-> model
                 (update :component component-reconcile a)
                 (update :signal-events concat [unknown-signal-event])
                 (update :next-signal-id inc)
                 (update :action-events concat [(-action-event singal-id (:next-action-id model) a)])
                 (update :next-action-id inc))))))

;;;;;;;;;;;;;;;;;;;;;;;; View model
