読み取り専用auto誰がここへ物を入れてよいか(placement、GameElementDefinition.md 7.7節。既定は両方)。
autoはspawn/moveの宣言順走査(同節)の対象になるか、manualはプレイヤーが札を重ねて入れられるか。 どちらもfalseなら、スロット名を名指しした移動でしか入らない(隠された道の枠)。
読み取り専用capacity合計サイズの上限(GameElementDefinition.md 7.3節)。undefined なら無制限。
読み取り専用cell枠の数(undefined=決まっていない)。数を決めることと位置が安定することは同じ——枠が5つだと 分かっていれば「5番目が空いている」と言えるが、長さが可変の並びには指し示すべき空き枠が無いので 詰めるしかない(SlotSystem.md 3節)。
非公開 読み取り専用cell枠ごとの定義。cellCountを持つスロットではその長さ、持たないスロットは空(sharedCellを使う)。
読み取り専用global読み取り専用manual読み取り専用name非公開 読み取り専用putここへ物を入れるのにかかるゲーム内時間(GameElementDefinition.md 7.10節)。undefinedなら一瞬。
時間を課すのは入れる側だけで、出すのは常に一瞬。当てるのに手間がかかっても外すのは一瞬、
という非対称の方が普通のため。値の解決はcombinationのdurationと同じ形で、selfが枠の持ち主、
instrumentが入れる物(putInRelation参照)。
非公開 読み取り専用shared枠数が決まっていないスロットの、すべての枠に共通する定義。
どんな型でも1つしか受け取れない枠か(枠が1つで、そこに同種を束ねない)。まとめて落とせるかを 型を持たずに言える唯一の形で、時間のかかる枠がこれを外れていないかの見張りに使う。
空けておく枠(SlotSystem.md 3節)。枠数を宣言したスロットはその数、宣言していないスロットは
'grows'——物を入れるたびに枠が1つ増え、空になった枠は残さず詰める。
「枠数が固定か」と「前詰めか」は同じ1つの問いなので、別々には答えない(同節)。読む側が
cellCountの有無から組み立てると、その judgment が読む側の数だけ増える。
枠ごとの受け入れ宣言(7.2節)。枠の内訳が位置ごとに違うときだけ位置ごとに並ぶ——全部同じなら 1つで足りるので、読み手は位置を添えるかどうかをこの形で見分ける。
ここへ入れるのに時間がかかるか(put_inの宣言があるか)。値そのものはownerとitemで変わるので、
「宣言しているか」だけを答える。
公開しているのは、acceptsAtMostOneと対で同梱の宣言を見張るため——put_inを持つ枠を選び出す
口が無いと、その不変条件を数える側が全部の枠へputInMinutesを引くことになる。
ここへ物を入れるのにかかる時間(7.10節)の宣言。省いていればundefined(一瞬で入る)。
このスロットへ入れるのにかかる分数(宣言が無ければ0)。関係を張るのは呼び出し側 (Slot.putInRelation)——押す前の問い合わせは張るだけ、入れる実行は動作主も主張する、と張り方が 分かれるので、ここでは決められない。
参照を誰が解くかは問わない(InteractionDef.minutesForと同じ形)。
1つの ObjectDef が持つ、1つのスロットの定義(GameElementDefinition.md 7.1〜7.3節)。 ObjectDef.slotDefs の1要素として、ローカルIDをそのままindexとする密配列に格納される。