   For automatic parallelization & segment control see `scan-parallel`.
   For indexed item retrievel see `query`."
   [creds table
-   & [{:keys [attr-conds last-prim-kvs return limit total-segments segment]}]]
+   & [{:keys [attr-conds last-prim-kvs return limit total-segments segment
+              return-cc?]}]]
   (as-map
    (.scan (db-client creds)
      (doto-maybe (ScanRequest.) g

       total-segments  (.setTotalSegments     (long g))
       segment         (.setSegment           (long g))
       (coll?* return) (.setAttributesToGet (mapv name return))
       (and return (not (coll?* return))) (.setSelect (utils/enum return))))))

(defn scan-parallel

               :consistent? true}
     :friends {:prim-kvs [{:catagory \"favorites\" :id [1 2 3]}
                          {:catagory \"recent\"    :id [7 8 9]}]}})"
  [creds requests & [{:keys [return-cc?] :as opts}]]
  (let [raw-req (if (:raw? opts) requests (batch-request-items requests))]
    (merge-unprocessed #(batch-get-item creds % (assoc opts :raw? true))
     (as-map
      (.batchGetItem (db-client creds)
        (doto-maybe (BatchGetItemRequest.) g ; {table-str KeysAndAttributes}
          :always    (.setRequestItems raw-req)
          return-cc? (.setReturnConsumedCapacity (utils/enum :total))))))))

(comment
  (def bigval (.getBytes (apply str (range 14000))))
