非公開constructorこの指定を、当てはまる型のカードで見せられるか。否定形(not)では見せられない
——「そのタグを持たない型すべて」を順に送っても、何を持ってくればよいかを言わない。
持つのは規則の側。 否定を書ける場所(枠のaccept、7.2節)から絵を出す側が、毎回
読み上げ(reading)の形を自分で見分けることになるのを避ける。
同じ指定どうしをまとめるための鍵。タグとobject_defはIDの空間が別なので、種類を混ぜて比べない ようにここで前置きを付ける(レシピの要求を型ごとに畳むのに使う、crafting.remainingRequirementsOf)。
静的not静的of静的of静的reading読み上げた指定(TypeMatchReading)が、その型に当てはまるか。判定はmatchesそのもので、 宣言を読み下す側——条件の木(ConditionReader)のように、規則そのものではなく読み上げだけを 受け取る読み手——から同じ問いを立てられるようにここへ置いてある。
枠のaccept(7.2節)として書き出した形。レシピの要求から製作中オブジェクトの枠を組み立てる
(inProgressObjects)ときに、宣言をYAMLへ戻すために使う。
「どの型が当てはまるか」の指定(GameElementDefinition.md 4.1節)。
タグで指せば、そのタグを持つあらゆる型(MOD追加分も含む)が当てはまる。object_defのidで指せば まさにその型だけが当てはまり、そのためだけの単発タグを新設せずに済む。trait名では直接 マッチングしない(traitはmixin合成後に消えるため、外部から参照すべきではない)。
否定(
not)は、この指定そのものを裏返す。 条件(conditions、14節)のnotが真偽を裏返すのとは 掛かる先が違い、{slot: items, matches: {not: {tag: quarry}}}は「quarryでない物が1つはある」、not: {slot: items, matches: {tag: quarry}}は「quarryが1つも無い」になる。