                                      rest-fields (rest curr-fields)]
                                  (if (not (empty curr-fields))
                                    (if (not (::sp/aggregate curr-fields))
-                                     (if (and (or (= (::sp/channel first-field) ::sp/row)
-                                                  (= (::sp/channel first-field) ::sp/column))
-                                              (sp/is-channel-enumerated? spec))
+                                     (if (or (= (::sp/channel first-field) ::sp/row)
+                                             (= (::sp/channel first-field) ::sp/column))
                                        (recur rest-fields has-non-facet-dim true true)
                                        (recur rest-fields has-non-facet-dim true has-enumerated-facet-dim))
                                      (recur rest-fields true has-dim has-enumerated-facet-dim))
                                    (if (and has-dim (not has-non-facet-dim))
-                                     (if (has-enumerated-facet-dim)
+                                     (if has-enumerated-facet-dim
                                        false
                                        true)
                                      true))))

                               (if (not (empty curr-fields))
                                 (if (not= (::sp/channel first-field) ::sp/?)
                                   (if (not (sp/is-spatial-channel? (::sp/channel first-field)))
                                     (if (sp/is-channel-enumerated? spec)
                                       (if (and
                                             (> non-positional-channel-count 1)
                                             (has-enumerated-non-positional-channel))
                                         (recur rest-fields (+ non-positional-channel-count 1) true (and result false))
                                         (recur rest-fields (+ non-positional-channel-count 1) true (and result true)))
                                       (recur rest-fields (+ non-positional-channel-count 1) false (and result true)))
                                     (recur rest-fields non-positional-channel-count false (and result true)))
                                   (recur rest-fields non-positional-channel-count false (and result true)))
                                 result
                                 )))))])

                                  has-y false]
                             (let [first-field (first curr-fields)
                                   rest-fields (rest curr-fields)]
                               (if (seq curr-fields)
                                 (cond
                                   (= (::sp/channel first-field) ::sp/x)
                                   (recur rest-fields
