                      show-before 0
                      repeating   false}}]
   (let [task (new-task task-name
+                       project
                        parent
                        tags
                        tasks

  @tasks)

(defn register-task
              :or   {parent      (inbox)
  [task-name {:keys [parent tags tasks description remind-date due-date show-before repeating]
                     tags        []
                     tasks   []
                     description ""

;;     - show-before: int >= 0 number of days before the due date when the instance should appear in the inbox

(defn- new-task
  [task-name project parent task-type tags tasks description remind-date due-date show-before repeating done]
  (when-not (is-task {:type task-type})
    (throw (js/Error. (str "Task type must belong to ["
                           (clojure.string/join ", "
