候補に1つでも在れば、抽選も含む(GameElementDefinition.md 9.5.2節の検査が、候補の側へ分けて 書いた形を見落とさないため)。どの候補が引かれるかは問わない——引かれる回が在るなら、その回に 起きる。
相手(instrument)から移す輸送のうち、入り切らない分を出どころへ残すもの(allow_overflow が
既定のfalse)を含むか(9.5節)。
相手を消す操作でこれを含むのは、端数を黙って捨てる形なので、ロード時に落とす側が読む
(parseInteractions)——捨てるならallow_overflow: trueと名乗る(9.5.1節)。
candidatesを先頭から順に、この効果を続けて何回適用できるか。undefinedは「答えられない」。 各candidateはinstrumentの役で、器(repeatLimitingVesselCount)を持つ効果だけが答える。
相手が居ない候補は抽選に出ない(among、10.3節)ので、著者は「相手が居なければ起こらない」を
書かなくてよい。全部外れれば何も起きない。
今この文脈で、この効果が行き先を持たないために、宣言している操作そのものが成立しないか(9.9節)。 成立しない操作は候補に出さない——落とせるのに何も起きない、を作らないため。
既定はfalse=妨げない。 repeatLimitingVesselCountと同じく、取りこぼしても安全側(操作は出る)に 倒れるので抽象にしない。
この効果が何を宣言しているかを読み上げる(EffectReader参照)。抽象なのは取りこぼしを防ぐため ——既定を持たせると、動詞を1つ足したときに読み手が黙って何も受け取らなくなる。
数えられない。 引くたびに起きることが変わるので、2回目が何をするかは実行するまで分からない。
非公開selectweightで重み付き抽選して1つ選ぶ。候補が非空であることは呼び出し側が保証する。
全候補の重みが0なら先頭の候補が選ばれる。 何も起きない手番を作らないための規約で、 「起こりうることが1つも無い」ときに何を選ぶかは抽選(pickWeighted)ではなくこちらが決める。
pick(10節): weightで1候補を選び、その候補の効果を適用する効果。候補の効果もActiveEffect (さらにpickなら再帰する)。候補が無ければ何もしない。