読み取り専用deftness作り手の腕が工程の時間へ効く宣言(docs/world/Skills.md 7節)。名乗っていなければundefined=腕は 速さに効かない。
名乗れるのは1つだけ。 上位のレシピは複数の腕を連言で要求する(SkillSystem.md 4.1節)が、 そこからはどの腕が速さを決めるか1つに定まらないので、作る側が名乗る。
読み取り専用name読み取り専用steps読み取り専用unlock解放条件(SkillSystem.md 4節)。undefinedなら最初から解放されている。
全工程が宣言した仕事の量の合計(分)。完成までの進捗の上限そのもの。
作り手が費やす時間の合計ではない(手際のぶん短くなる、minutesFor)。上限が誰にとっても
同じでなければ、作りかけの進捗が作り手ごとに違う意味を持つことになる。
工程を1つ終えた作り手の腕前を、実行経路のぶんだけ伸ばす(docs/engine/SkillSystem.md 3.4節)。
伸ばす腕を決めるのはdeftnessの名乗り(13.5節)——どのレシピがどの腕の仕事かを言う宣言は
これしか無いので、速さと伸びは同じ1本が決める。名乗っていないレシピは、どの腕の仕事でもないと
決めた印なので何もしない。
量は工程が宣言した仕事の量から決まり、手際で縮んだ時間からではない——縮んだぶんは同じ量が 短い時間で届く形になり、手作業で腕が上がったときと揃う(同3節)。
agentがその工程に実際に費やすゲーム内時間(分)。宣言された仕事の量から、作り手の腕が届いて いれば宣言された分だけ縮めた値(13.5節)。腕を名乗っていない、または作り手がその段に届いて いないなら宣言どおり。
問うのは「この者にとって何分か」なのでagentは必ず要る(解放条件unmetUnlockRequirementと
同じ形)。誰にとってでもない分数は、工程が宣言した仕事の量(durationMinutes)が直接答える。
agentが解放条件を満たしていない場合、最初に落ちた要件。満たしていればundefined。
未解放のレシピも一覧へ出し、そこでなぜ作れないかを言うため、可否と理由を1回の評価から得る (Requirements.firstUnmet と同じ理由)。
問うのは「この者にとって解放されているか」なので、agentは必ず要る(13.2節)。誰にとってでも
ない「解放条件を持つか」はunlockが直接答える。
レシピ1つ(13節)。成果物のObjectDefが持つ。
conditionsはこのレシピを知っているかを判定するもので、素材が揃っているかとは別物 (素材の充足はsteps.requiresが持つ)。判定する時点では成果物のインスタンスがまだ無いので、そこを 起点に辿る参照は解決先を持たない(何を書けるかはReferenceScope.acting.withoutSelfが決める)。