        (let [result (from-child/consume-from-child state array-o-bytes)]
          result))
      ;; trigger-io does some state management, even
-     ;; if we discard the incoming buffer
-     state)))
-
+     ;; if we discard the incoming bytes because our
+     ;; buffer is full
+     ;; TODO: Need a way to signal the child to
+     ;; try again shortly
+     (do
+       (log/error "Discarding incoming bytes, silently")
+       state))))
+
+(s/fdef trigger-from-parent
+        :args (s/cat :state-agent ::specs/state-agent
+                     :state ::specs/state
+                     :array-o-bytes bytes?)
+        :ret ::specs/state)
 (defn trigger-from-parent
   "Message block arrived from parent. We have work to do."
   ;; TODO: Move as much of this as possible into from-parent

    actual-next))

(declare trigger-from-timer)
(defn schedule-next-timeout!
  [{:keys [::specs/message-loop-name
           ::specs/recent]
    {:keys [::specs/next-action
            ::specs/schedule-pool]
     :as flow-control} ::specs/flow-control
    :as state}
   state-agent]

    ;; that might do the send, once we've hit EOF
    ;; Q: What can I do here to
    ;; produce the same effect?
    ;; TODO: Worry about that once the basic idea works.

    ;; If the child sent a big batch of data to go out
    ;; all at once, don't waste time setting up a timeout
