読み取り専用agentこの操作で動いている個体(11.5節)。関係を張るのは誰かが動いているときだけなので必ず居る
——誰も動いていない場面(レシピの解放条件、13.2節)は関係を張らずReferenceContext.askingで問う。
読み取り専用instrument運ばれてきて働きかけに使われる物。それを伴わない操作では居ない(11.5節)。
読み取り専用patient働きかけられる物(11.5節)。操作の宣言が乗っている側で、宣言の中ではselfと同じ物を指す。
非公開participantsこの関係に加わっている物を1つずつ(同じ物が2つの役に就く再帰的な操作、11.5節では1回だけ)。 agentを先頭に置くので、一意性が破れているときは他の誰も加わらないうちに止まる(bound)。
非公開boundこの関係を張った状態でbodyを実行し、必ず外してから返す(11.5節「1つずつ張って外す」)。
bodyへ渡す文脈の起点はpatient——操作の宣言が乗っている側がそのままselfになる。
押す前に見せるための問い合わせ(条件・所要時間)がこれ。動作そのものではないので、 agentが動いていると主張しない——実行中の操作の傍らで別の候補の分数を引くことは起こる。
roleに就いている物。就いている物が居なければundefined。
この関係に加わっている物のうち、selfでないもの。役を対象にした持続効果(11.5節)の宣言元と相手は、 必ず同じ1つの関係に加わっている——役を指せるのは参加者からだけだから。だから相手を残らず挙げるには、 その物が加わっている関係のそれぞれでここを引く(WorldObject.participantsSharingAnyRelation)。
実行として関係を張る。同じ物が2つの操作のagentになることはない(11.5節の不変条件。動作主は 一度に1つの動作しかできない)ので、既に動いている個体をagentにしようとすればその場で止まる。
抜けたところが操作の切れ目になる(WorldSession.runToSeam)。実行として張られている間が そのまま操作1つなので、囲うのはここ——時間を使う操作は経過中に手番を配りうるので、囲いを 呼び出し側に任せると、忘れた経路では内側の時間経過自身の切れ目が深さ0で開き、効果を適用する 前に手番が走る。
切れ目はクレームの外側で閉じる。 内側で閉じると、切れ目が配る待たせた手番が自分自身の操作 (例: 強制的な時間経過、11.5節「再帰的な操作」)だったとき、まだ外れていないクレームへ同じagentの 再クレームが走り、上の不変条件が破れる。
1つの操作が結んでいる、参加者どうしの関係(GameElementDefinition.md 11.5節)。
関係は世界に刻む。 張っている間、参加者は自分がどの操作に参加しているかを知り、その
props(base・passives)から役を指せる——道の所要時間が「今歩いている人の遅れ」を土台にできるのは、 条件の判定も所要時間の問い合わせも効果の適用も、同じ関係を張った状態で行うからで、片方だけで 張ると押す前に見せる分数と実際に進む分数がずれる。張るのも外すのもここだけ(
during)。呼び出し側は「この関係の下で読む/実行する」と頼むだけで、 張り忘れ・外し忘れを覚えておく必要がない。