オプションpackName: string読み取り専用body混ぜ込める宣言一式(traitと共有する部分)。
非公開declarednodeの実体。modifyDeclarationが初めて書き換えるとき、自分の複製に差し替わる。
読み取り専用globalobject_defsのキーとして作った名前(WorldCodexYamlLoader.defineObjectName)のグローバルID。trait解決を待たずパース時点で確定する。
読み取り専用name非公開ownsdeclaredNodeが自分の複製か(=そのまま書き換えてよいか)。
読み取り専用packこの宣言を持ち込んだアセットパックの識別子(同梱ぶんならundefined)。絵の出所を決める ——この型の絵は、まずこのパックの在庫表から探す(AssetPack.md 5節、artName参照)。
recipes(13節)。成果物ごとの内容なのでtrait合成の対象にしない(resolve参照)。
読み取り専用source読み込み元。重複エラーメッセージの出所表示にのみ使う。
variation_axes(3.5節)。この型の変種を並べる軸で、読むのは生成器(axisVariants.ts)だけ。 trait合成の対象にしない——どんな変種を持つかは、混ぜ込まれる側ではなく型自身の性質。
宣言そのもの。読むだけ——渡された時点では読み込み元のもので、そちらは同じノードを次の 読み込みへも配る(loadWorldCodex)。書き換えるならmodifyDeclarationを通す。
非公開artこの型が名乗る絵の名前(art、4.3節。宣言が無ければ識別子そのもの)。パックの型には出所の
パックを添える(AssetPack.md 5節)——引く側はこれ1本で、そのパックの絵を先に見て、無ければ
同梱ぶんへ落ちる(objectArt)。
宣言を書き換える(patch、3.4節)。書き換えは読み込み元へ残らない——受け取った宣言は 他人のものなので、初めて書き換えるときに自分の複製へ移ってから渡す。
書き換えが済んだら下の各フィールドを取り直す。フィールドはこのノードの一部を指しているだけ なので、両者が食い違ったままresolveへ進まないよう、取り直しはこのクラス自身が引き受ける。
非公開read宣言から各フィールドを取り直す。trait合成がまだ起こりうるものは生YAMLノードのまま持つ。
参照するtraitを合成し(フェーズ1: YAMLノードレベルのマージ)、そこから最終的なObjectDefを 組み立てる(フェーズ2: loaderの各parse関数による意味解釈)。
合成規則(フェーズ1):
object_defs(GameElementDefinition.md 4節)の1エントリの、まだtrait解決を経ていない生の形。 trait上書きマージ(resolve参照)がまだ起こりうるフィールドは、意味解釈済みの型にせず 生YAMLノードのまま持つ。globalIdのみパース時点で確定し、tags・prop/slot名等はresolveで 初めて確定する。