         status-color (or color :red)
         color-error (when-not color
                       (missing-item-warning "component color" color-conf))
-        name (get-simple-key json name-conf)
-        name-error (when-not name
-                     (missing-item-warning "component name" name-conf))
-        [message message-error] (get-simple-key-with-warning json message-conf "component message")]
+        [name name-error] (optional-non-nil-value json name-conf "component name")
+        [message message-error] (optional-value json message-conf "component message")]
     [{:color status-color
       :name name
       :message message}

(defn- get-simple-key [json key]
  (get json (keyword key)))

(defn- get-simple-key-with-warning [json key-str description]
  (when-let [key (keyword key-str)]
    (if (contains? json key)
      [(get-simple-key json key) nil]
      [nil (missing-item-warning description key-str)])))

(defn- get-complex-key [json key-conf]
  (if (string? key-conf)

      [:red (missing-item-warning "color" color-conf)])))

(defn package-version [json {package-version-conf :package-version}]
  (optional-non-nil-value json package-version-conf "package-version"))

(defn message [json {message-conf :message}]
  (optional-value json message-conf "message"))
