                  :effect (effect (pump card 1 true))}]}
 
    "Knight"
-   {:abilities [{:cost [:click 1] :msg "host it on an ICE"}
+   {:abilities [{:label "Host Knight on a piece ICE" :cost [:click 1]
+                 :choices {:req #(and (= (:type %) "ICE")
+                                      (= (last (:zone %)) :ices)
+                                      (not (some (fn [c] (has? c :subtype "Caïssa")) (:hosted %))))}
+                 :msg (msg "host it on " (:title target)) :effect (effect (host target card))}
                 {:cost [:credit 2] :msg "break 1 subroutine on the hosted ICE"}]}
 
    "Leviathan"

   {:advanceable :always
    :abilities [{:cost [:click 1] :req (req (>= (:advance-counter card) 4))
                 :msg "do 3 net damage" :effect (effect (damage :net 3 {:card card}) (trash card))}]}

   "Running Interference"
   {:prompt "Choose a server" :choices (req servers)

    :prompt "Choose an agenda to trigger"
    :choices (req (filter #(not= (:title %) "Bifrost Array") (:scored corp)))
    :effect (effect (card-init target))}

   "Bishop"
   {:abilities [{:label "Host Bishop on a piece ICE" :cost [:click 1]
                 :choices {:req #(and (= (:type %) "ICE")
                                      (= (last (:zone %)) :ices)
                                      (not (some (fn [c] (has? c :subtype "Caïssa")) (:hosted %))))}
                 :msg (msg "host it on " (:title target)) :effect (effect (host target card))}]
    :events {:pre-ice-strength
             {:req (req (and (= (:cid target) (:cid (:host card))) (:rezzed target)))
              :effect (effect (ice-strength-bonus -2))}}}

   "Brain Cage"
   {:effect (effect (damage :brain 1 {:card card}) (gain :max-hand-size 3))
