マイクラ1.20.5の技術的要素まとめ(自分用)



# はじめに
本記事は1.20.5で追加される技術的要素のみをまとめたものです。
1.21で追加される要素やリソースパック等のデータパック以外の要素、バグ修正、一部ゲームプレイに関係しないものは書いていません。

公開するにあたってできるだけ見やすくなるように直しましたが、自分用にまとめたものなので読みにくいかもしれません。
もし間違っている場所などあればコメントかDM([@Hirobao](https://twitter.com/Hirobao1))で教えて下さい。
主要なまとめよりも細かい内容を知りたい方は、[**スナップショット毎の変更**](#スナップショット毎の変更)の方に詳しく書いてあります。

**※ 注意！**
- コマンドの例は基本的にコピペするだけで使える用にしています
- 地図(`filled_map`)を使用する時は、事前に白紙の地図を使用し、生成した地図のID(`map_id`)を入れてください
- 例で使用しているコマンドやJSONは、省略可能な`minecraft:`や`"`等を省略している場合があります
- 前バージョンから変更していないポーションIDやエフェクトID等は記載していません

# 1.20.5で追加される主要な要素まとめ
## 属性（Attributes）
### generic.scale
生きているエンティティのサイズの制御
範囲：0.0625〜16（デフォルト:`1.0`）
- 特定のエンティティは制限あり
    - シュルカーは通常の3倍までしか拡大できない
    - エンダードラゴンは変更できない

### player.block_interaction_range
プレイヤーが届くブロックまでの距離の制御
範囲：0〜64（デフォルト:`4.5`）

### player.entity_interaction_range
プレイヤーが届くエンティティまでの距離の制御
範囲：0〜64（デフォルト:`3.0`）

### generic.step_height
エンティティがジャンプせずに登れる最大高さの制御
範囲：0〜10（デフォルト:`0.6`）

### generic.gravity
エンティティに影響を与える重力の制御
加速度（ブロック/ティック^2）を指定する
マイナスの場合、上向きに落下する
範囲：-1～1（デフォルト:`0.08`）

### generic.safe_fall_distance
ダメージを受けずに落下できるブロック数の制御
マイナスの場合、落下開始時にマイナスの数値分だけ落下ダメージが加算された状態になる
範囲：-1024～1024（デフォルト:`3.0`）

### generic.fall_damage_multiplier
落下ダメージに設定された値の倍率の制御
範囲：0～100（デフォルト:`1.0`）

### generic.jump_strength
`horse.jump_strength`から名前変更
全ての生きているエンティティに適用可能に変更
生きているエンティティの基礎ジャンプ力の制御
範囲：0～32（デフォルト:`0.42`）

### player.block_break_speed
プレイヤーのブロック破壊速度の倍率の制御
範囲：0～1024（デフォルト:`1.0`）

## コマンド（Commands）
### attribute
#### 修飾子操作の名前を変更
- `add`から`add_value`に変更
- `multiply_base`から`add_multiplied_base`に変更
- `multiply`から`add_multiplied_total`に変更

### execute
#### サブコマンドの`if|unless`に`items`を追加
コマンドを使用してアイテムをカウントできる場合に実行
構文：`if|unless items <source> <slots> <item_predicate>`
- **items:**
    - **`<source>`:**
    `item`コマンドで使用されるものと同じ
        - `block <x> <y> <z>`
        - `entity <target>`
    - **`<slots>`:**
        - 単一スロット（`container.0`、`player.cursor`など）
        - 範囲スロット（`container.*`、`armor.*`など）
    - **`<item_predicate>`:**
    `clear`コマンドのアイテム条件と同じ
```:ホットバーにある耐久値の減っていないダイヤのツルハシの個数を返す
execute if items entity @s hotbar.* diamond_pickaxe[damage=0]
```

### gamerule
- **`spawnChunkRadius`**
スポーンチャンクのサイズを変更
範囲：0～32（デフォルト:`2`）
```:スポーンチャンクのサイズを0にする
gamerule spawnChunkRadius 0
```

### particle
#### 追加されたパーティクル
- `vault_connection`
- `gust_emitter_large`
- `gust_emitter_small`
- `dust_piller`
- `infested`
- `item_cobweb`
- `small_gust`
- `raid_omen`
- `trial_omen`
- `trial_spawner_detection_ominous`
- `ominous_spawning`

#### 削除されたパーティクル
- `gust_dust`
- `gust_emitter`

#### 構文変更
- **ブロック系パーティクル**
`block_marker`、`block`、`falling_dust`、`dust_pillar`の変更
    - **block_state:**
    デフォルトのブロックの状態を表すプレーンなブロック名も受け入れる
```:例1
particle falling_dust{block_state:"diamond_block"} ~ ~1 ~
```
```:例2
particle block{block_state:{Name:redstone_lamp,Properties:{lit:"true"}}} ~ ~1 ~
```
- **item**
    - **`item`:**
    デフォルトのコンポーネントを含むプレーンなアイテムも受け入れる
`count`は無視される
```:例1
particle item{item:apple} ~ ~1 ~
```
```:例2
particle item{item:{id:"diamond",components:{custom_model_data:1}}} ~ ~1 ~
```
- **dust_color_transition**
    - **`from_color`:**
    変化前の色をRGBを表すリストで指定
    - **`to_color`:**
    変化後の色をRGBを表すリストで指定
    - **`scale`:**
    ダストのサイズを指定(0.01～4)
```:赤から青に変わるダスト
particle dust_color_transition{from_color:[1,0,0],to_color:[0,0,1],scale:0.9} ~ ~1 ~
```
- **dust**
    - **`color`:**
    RGBを表すリストで指定
    - **`scale`:**
    ダストのサイズを指定(0.01～4)
```:赤色でスケール1のダスト
particle dust{color:[1,0,0],scale:1} ~ ~1 ~
```
- **entity_effect**
    - **`color`:**
    RGBAを表すリストで指定
```:赤い半透明のエンティティエフェクト
particle entity_effect{color:[1.0,0.0,0.0,0.6]} ~ ~1 ~
```
- **sculk_charge**
    - **`roll`:**
    表示する傾きをラジアンで指定
```:傾きが1.5ラジアンのスカルクチャージパーティクル
particle sculk_charge{roll:1.5} ~ ~1 ~
```
- **shriek**
    - **`delay`:**
    パーティクルが表示されるまでにかかる時間をtickで指定
```:10tick後に表示されるシュリークパーティクル
particle shriek{delay:10} ~ ~1 ~
```
- **vibration**
    - **`destination`:**
    振動が向かう先の座標を指定
    - **`arrival_in_ticks`:**
    振動が指定座標に向かうまでにかかる時間をtickで指定
```:実行座標から座標:[0,0,0]に1tickかけて飛ぶ振動パーティクル
particle vibration{destination:{type:block,pos:[0,0,0]},arrival_in_ticks:1} ~ ~ ~
```

### playsound
ミキサーとプレイヤーを指定せずに実行できるように変更
指定しない場合は、`master`と`@s`になる
```
playsound entity.player.levelup
```

### transfer
プレーヤーを別のサーバーへ転送するコマンド
転送されるサーバーの`server.properties`の`accepts-transfers`を`true`にすることで接続を受け入れられる

### その他
- ポーションエフェクトレベル更新
  - 全てのポーションエフェクトの`amplifier`を0~255の範囲に制限する
  - ポーション効果のレベル128以上で変化していた効果がなくなった

- スロット引数の追加
- アイテム構文の更新
- ルート関数のインライン定義の追加

## アイテムコンポーネント（Components）
### attribute_modifiers
`AttributeModifiers`タグからの変更
特定箇所に装備している時に適応する属性設定
`modifiers`の指定
- **`type`:** 属性のID
- **`slot`:** モディファイアの適応箇所(デフォルト:`any`)
    - `any`:下記の全て適応
    - `hand`:メインハンドかオフハンド
    - `armor`:全ての防具スロット
    - `mainhand`:メインハンド
    - `offhand`:オフハンド
    - `head`:頭
    - `chest`:胴体
    - `legs`:脚
    - `feet`:足
- **`uuid`:** 修飾子のUUID指定
同じIDの修飾子は1つのみ存在できる
- **`name`:** 
任意の文字列(なんでもいい)
- **`amount`:** 
補正値の指定(`operation`で操作する)
- **`operation`:** 演算方法の指定(上から順に処理)
    - `add_value`
    元の値に`amount`を加算
    - `add_multiplied_base`
    元の値に(1+`amount`)を乗算
    - `add_multiplied_total`
    元の値に`add_multiplied_total`を指定した同じ修飾子全てから(1+`amount`)の値を乗算
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの2番目のビット(2)から変更
    - `false`の場合ツールチップから追加効果非表示
```:足に装備するとジャンプ力が上がるブーツ
give @s diamond_boots[attribute_modifiers={modifiers:[{type:"generic.jump_strength",slot:feet,uuid:[0,0,0,1],name:"height jump",amount:1.0,operation:"add_multiplied_base"}]}]
```

### banner_patterns
`BlockEntityTag.Patterns`タグからの変更
旗や盾に適用される追加のパターンの保存
- **`pattern`:** [模様ID](https://minecraft.wiki/w/Banner/Patterns)で指定
    - `base`(旧:b)
    - `stripe_bottom`(旧:bs)
    - `stripe_top`(旧:ts)
    - `stripe_left`(旧:ls)
    - `stripe_right`(旧:rs)
    - `stripe_center`(旧:cs)
    - `stripe_middle`(旧:ms)
    - `stripe_downright`(旧:drs)
    - `stripe_downleft`(旧:dls)
    - `small_stripes`(旧:dd)
    - `cross`(旧:cr)
    - `straight_cross`(旧:sc)
    - `diagonal_left`(旧:ld)
    - `diagonal_right`(旧:rud)
    - `diagonal_up_left`(旧:lud)
    - `diagonal_up_right`(旧:rd)
    - `half_vertical`(旧:vh)
    - `half_vertical_right`(旧:vhr)
    - `half_horizontal`(旧:hh)
    - `half_horizontal_bottom`(旧:hhb)
    - `square_bottom_left`(旧:bl)
    - `square_bottom_right`(旧:br)
    - `square_top_left`(旧:tl)
    - `square_top_right`(旧:tr)
    - `triangle_bottom`(旧:bt)
    - `triangle_top`(旧:tt)
    - `triangles_bottom`(旧:bts)
    - `triangles_top`(旧:tts)
    - `circle`(旧:mc)
    - `rhombus`(旧:mr)
    - `border`(旧:bo)
    - `curly_border`(旧:cbo)
    - `bricks`(旧:bri)
    - `gradient`(旧:gra)
    - `gradient_up`(旧:gru)
    - `creeper`(旧:cre)
    - `skull`(旧:sku)
    - `flower`(旧:flo)
    - `mojang`(旧:moj)
    - `globe`(旧:glb)
    - `piglin`(旧:pig)
    - `flow`(渦の模様)
    - `guster`(ブリーズの模様)
- **`color`:**
    - `base_color`コンポーネントと同じ
```
give @s shield[banner_patterns=[{pattern:"gradient",color:"light_blue"},{pattern:"guster",color:"gray"}]]
```

### base_color
`BlockEntityTag.Base`タグからの変更
盾のベースカラーを保存
- いずれかの色を選択
    - `white`:白色
    - `orange`:橙色
    - `magenta`:赤紫色
    - `light_blue`:空色
    - `yellow`:黄色
    - `lime`:黄緑色
    - `pink`:桃色
    - `gray`:灰色
    - `light_gray`:薄灰色
    - `cyan`:青緑色
    - `purple`:紫色
    - `blue`:青色
    - `brown`:茶色
    - `green`:緑色
    - `red`:赤色
    - `black`:黒色
```:黄緑色の盾
give @s shield[base_color="lime"]
```

### bees
`BlockEntityTag.Bees`タグからの変更
ミツバチをミツバチの巣または養蜂箱の中に保持
配置時ミツバチの巣または養蜂箱にコピーされる
- **`entity_data`:**
    - **`id`:** エンティティID
    - 残りのタグはスポーン時ミツバチに適応される
- **`ticks_in_hive`:**
    - 巣の中にいる時間(tick)
- **`min_ticks_in_hive`:**
    - 巣の中にとどまる最低時間(tick)
```
give @s beehive[bees=[{entity_data:{id:"bee",NoAI:true},ticks_in_hive:10,min_ticks_in_hive:3}]]
```


### block_entity_data
`BlockEntityTag`タグからの変更
ブロックエンティティを設置する時に適用するNBTデータを保存
専用のコンポーネントに移動されたブロックエンティティデータはこのタグに使用できない
コマンドブロック、書見台、看板、スポナーに対してのみ機能する
ブロックエンティティタイプのIDを指定する必要がある
追加のデータは設置時ブロックにコピーされる
```
give @s lectern[block_entity_data={Book:{count:1,id:"writable_book"},Page:0,id:"lectern"}]
```

### block_state
`BlockStateTag`タグからの変更
設置時ブロックに適応するブロック状態のプロパティを保持
```
give @s turtle_egg[block_state={eggs:"4"}]
```

### bucket_entity_data
`NoAI`、`Silent`、`NoGravity`、`Glowing`、`Invulnerable`、`Health`、`Age`、`Variant`、`HuntingCooldown`、`BucketVariantTag`タグからの変更
バケツから配置されたエンティティに適用するNBTデータの保存(デフォルト:`{}`)
上記のタグを含めることができ、配置時エンティティに適用
```
give @s axolotl_bucket[bucket_entity_data={NoAI:1,Glowing:1}]
```

### bundle_contents
`Items`タグからの変更
バンドル内の全てのアイテムを保持
削除するとアイテムをバンドルに追加できなくなる
アイテムスタックのリストで指定
```
give @s bundle[bundle_contents=[{id:"poisonous_potato"},{id:"baked_potato",count:30,components:{custom_name:'{"text":"焼いたやつ","color":"red"}'}}]]
```

### can_break
`CanDestroy`タグからの変更
アドベンチャーモードでプレイヤーがこのアイテムで破壊できるブロックの設定
ルートテーブルや実績と同様に柔軟な記述形式に変更
- **`predicates`:**
    - **`block`:** ブロック、ブロックのリスト、ハッシュタグ付きブロックタグで指定
    - **`nbt`:** ブロックエンティティのNBT指定(機能しないNBTがある※バグかも)
    - **`state`:** ブロックの状態の指定
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの4番目のビット(8)から変更
    - `false`の場合ツールチップから破壊可能ブロック非表示
```:石指定
give @s minecraft:iron_pickaxe[can_break={blocks:"minecraft:stone"}]
```
```:原木タグのブロック指定(破壊可能ブロック非表示)
give @s minecraft:iron_axe[can_break={predicates:[{blocks:"#minecraft:logs"}],show_in_tooltip:false}]
```
```:testと書かれた看板指定
give @s minecraft:iron_axe[can_break={predicates:[{blocks:"#minecraft:all_signs",nbt:{front_text:{messages:['"test"', '""','""','""']}}}]}]
```
```:土と草ブロック・大釜level1指定
give @s minecraft:iron_pickaxe[can_break={predicates:[{blocks:["dirt","grass_block"]},{blocks:"minecraft:water_cauldron", state:{level:"1"}}]}]
```

### can_place_on
`CanPlaceOn`タグからの変更
アドベンチャーモードのプレイヤーがこのアイテムを使用して配置できるブロックの設定
ルートテーブルや実績と同様に柔軟な記述形式に変更
- **`predicates`:**
    - `can_break`コンポーネントの`predicates`と同じ
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの5番目のビット(16)から変更
    - `false`の場合ツールチップから設置可能ブロック非表示

### charged_projectiles
`Charged`と`ChargedProjectiles`タグからの変更
クロスボウに装填されたすべての発射体を保持
アイテムスタックのリストで指定
装填数の制限がなくなった
```:矢が5本装填されたクロスボウ
give @p minecraft:crossbow[minecraft:charged_projectiles=[{id:"arrow"},{id:"arrow"},{id:"arrow"},{id:"arrow"},{id:"arrow"}]]
```

### container
`BlockEntityTag.Items`タグからの変更
コンテナブロックの中身を保持
設置時ブロックにコピーされる(デフォルト:`[]`)
- **`slot`:**
    - コンテナ内のスロット位置を指定
- **`item`:**
    - アイテムスタックの指定
```
give @s chest[container=[{slot:0,item:{id:"diamond",count:10}},{slot:7,item:{id:"diamond_pickaxe",components:{"unbreakable":{}}}}]]
```

### container_loot
`BlockEntityTag.LootTable`、`BlockEntityTag.LootTableSeed`タグからの変更
コンテナブロックのルートテーブルを保持
- **`loot_table`:**
    - ルートテーブルのIDを指定
- **`seed`:**
    - ルートテーブルのseed値を指定
    - 0または指定しない場合ランダムに生成される
```
give @s chest[container_loot={loot_table:"minecraft:chests/spawn_bonus_chest"}]
```

### custom_data
このデータはゲームで使用しないNBTオブジェクトを保存する
アイテムのカスタムデータストレージに使用できる
バージョンをアップデートした時にアイテムタグ内のゲーム以外のデータがここに格納される
```:custom_dataの例
give @s apple[custom_data={Tag1:"custom",Tag2:"custom"}]
```

### custom_model_data
`CustomModelData`タグからの変更
アイテムモデルを設定
```
give @s carrot_on_a_stick[custom_model_data=1]
```

### custom_name
`display.Name`タグから変更
アイテムのカスタムネームを設定
```:カスタムネーム付きガラス
give @s glass[custom_name='{"text":"高級なガラス","color":"red"}']
```

### damage
`Damage`タグからの変更
耐久値の最大値から減少する量
0以上の整数で指定(デフォルト:0)
```:耐久値が100減った弓
give @s bow[damage=100]
```

### debug_stick_state
`DebugProperty`タグからの変更
デバッグ棒を使用するときの選択したブロック状態のプロパティを保存
ブロックIDとブロックプロパティ名を指定
```:チェストは水の有無、かまどは着火を選択した状態のデバッグ棒
give @s debug_stick[debug_stick_state={"chest":"waterlogged","furnace":"lit"}]
```

### dyed_color
`display.color`タグからの変更
染色可能なアイテムの色の設定(`#minecraft:dyeable`タグ)
- **`rgb`:** 256階調(0～255)のRGBを10進数で指定
  $65536×(R)+256×(G)+(B)$
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの7番目のビット(64)から変更
    - `false`の場合ツールチップから染色コード非表示
```:水色(RGB=[0,255,255])の染色された革のブーツ
give @s leather_boots[dyed_color={rgb:65535,show_in_tooltip:false}]
```

### enchantment_glint_override
アイテムのエンチャントの輝きの表示設定
`true`の場合エンチャントの輝きを表示する
`false`の場合エンチャントの輝きを非表示にする
```
give @s apple[enchantment_glint_override=true]
```

### enchantments
`Enchantments`タグからの変更
アイテムのエンチャントとそのレベルのリストを保存(デフォルト:`{levels: {}}`)
- **`levels`:**
    - エンチャントIDとそれに対応するエンチャントレベルを指定
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの最初のビット(1)から変更
    - `false`の場合ツールチップからエンチャントを非表示
```:耐久力3とパンチ1の付いた弓(エンチャント非表示)
give @s bow[enchantments={levels:{"unbreaking":3,"punch":1},show_in_tooltip:false}]
```

### entity_data
`EntityTag`タグからの変更
スポーンエッグやアーマースタンドなど、エンティティを生成するアイテムを使用するときのNBTを保存(エンティティを指定する`id`タグは必須)
```:小さいアーマースタンドを出すアレイのスポーンエッグ
give @s allay_spawn_egg[entity_data={id:"armor_stand",Small:1}]
```

### fire_resistant
設定した場合、アイテムが火の中で燃えなくなる
ネザライトなどの耐火性アイテムはデフォルトで含む
```
give @s apple[fire_resistant={}]
```

### firework_explosion
`Explosion.Type`、`Explosion.Colors`、`Explosion.FadeColors`、`Explosion.Trail`、`Explosion.Flicker`タグからの変更
花火の星に作成された爆発内容を格納
- **`shape`:** 形状のタイプを指定
    - `small_ball`:小球
    - `large_ball`:大玉
    - `star`:星形
    - `creeper`:クリーパー型
    - `burst`:破裂
- **`colors`:**
    - 最初のパーティクルの色のリスト
- **`fade_colors`:**
    - フェード後のパーティクルの色のリスト
- **`has_trail`:** (デフォルト:`false`)
    - 流星効果を設定
- **`has_twinkle`:**(デフォルト:`false`)
    - きらめき効果を設定

```:青と緑から黄と紫に変化する流星の大きい花火の星
give @s firework_star[firework_explosion={shape:"large_ball",colors:[255,65280],fade_colors:[16776960,16711935],has_trail:true}]
```

### fireworks
`Fireworks.Explosions`、`Fireworks.Flight`タグからの変更
ロケット花火の爆発内容と飛行時間を保存(デフォルト:`{explosions:[],flight_duration:1}`)
- **`explosions`:**
    - 爆発のリスト
    - `firework_explosion`コンポーネントと同じ形式
- **`flight_duration`:**
    - ロケット内の火薬の数
```
give @s minecraft:firework_rocket[fireworks={explosions:[{shape:"large_ball",colors:[16699434]},{shape:"large_ball",colors:[16775336],has_trail:true}],flight_duration:2}]
```

### food
食べ物のように動作させる設定(食べることが可能)
食品タイプの暗黙的なデフォルト値がある
- **`nutrition`:** 0以上の整数
  - 食べた時の満腹度回復の量
- **`saturation`:** floatで指定
  - 食べた時の隠し満腹度回復の量
- **`is_meat`:** ブール値
  - `true`の場合オオカミに餌として与えられる(デフォルト:`false`)
- **`can_always_eat`:** ブール値
  - `true`の場合お腹が空いていなくても食べられる(デフォルト:`false`)
- **`eat_seconds`:** floatで指定
  - 食べるのにかかる秒数(デフォルト:`1.6`)
- **`effects`:**
食べた時に適用する効果のリスト(デフォルト:`[]`)
  - **`effect`:**
    - アイテムが適用するカスタム効果のリスト
    - `potion_contents`コンポーネントの`custom_effects`と同じ形式
  - **`probability`:** 0~1のfloatで指定
    - エフェクトが適用される確率(デフォルト:`1`)
```
give @s bone[food={nutrition:5,saturation:0.5,is_meat:true}]
```

### hide_additional_tooltip
設定した場合、「追加」ツールチップ部分を非表示にする（バナーパターン、装飾名、ミュージック名、飛翔時間など）
`HideFlags`タグの6番目のビット(32)から変更
```
give @s firework_rocket[hide_additional_tooltip={}]
```

### hide_tooltip
設定した場合、アイテムのアイテム名を含む全てのツールチップを非表示にする
```:
give @s apple[hide_tooltip={}]
```

### instrument
`instrument`タグからの変更
ヤギの角で使用する楽器のタイプを保持
楽器のタイプIDを指定
```
give @s minecraft:goat_horn[instrument="ponder_goat_horn"]
```

### intangible_projectile
クリエイティブモードのプレイヤーのみが拾える発射物の設定
```:intangible_projectileが設定された矢
give @s arrow[intangible_projectile={}]
```
```:intangible_projectileが設定された矢が装填されたクロスボウ
/give @p crossbow[charged_projectiles=[{components:{"intangible_projectile":{}},count:1,id:"minecraft:arrow"}]]
```

### item_name
デフォルトのアイテム名を置き換える
- `custom_name`との違い
  - `item_name`は金床で変更または削除できない
  - `item_name`はプレイヤーに表示されるとき文字のスタイルが斜体に設定されない
  - `item_name`はラベルが表示されない(旗や額縁に入れたアイテムの名前など)
```:デフォルトの名前が硬いリンゴ
give @s apple[item_name="硬いリンゴ"]
```

### lock
`BlockEntityTag.Lock`タグからの変更
コンテナブロックのロック状態を保持
開くには、同じ値のカスタム名を持つアイテムを使用
```
give @s chest[lock="key"]
```

### lodestone_tracker
`LodestonePos`、`LodestoneDimension`、`LodestoneTracked`タグからの変更
コンパスが指すロードストーンを指定
- **`target`:** 存在しない場合コンパスが回転する
    - **`pos`:**
      - x、y、zの整数配列
    - **`dimension`:**
      - ディメンションID
    - **`tracked`:** (デフォルト:`true`)
      - `true`の場合、ターゲット位置のロードストーンが削除されると、コンポーネントが削除される
```
give @s compass[lodestone_tracker={target:{pos:[0,0,0],dimension:"overworld"}}]
```

### lore
`display.Lore`タグからの変更
アイテムのツールチップに説明を追加できる(デフォルト:`[]`)
256行まで追加可能
```:説明付きガラス
give @s glass[minecraft:lore=['{"text":"これは古くて"}','{"text":"ひびが入っている"}']]
```

### map_color
`display.MapColor`タグからの変更
地図のアイテムの色を設定
- `rgb`の値を指定(デフォルト:4603950)
    - $65536×(R)+256×(G)+(B)$
```:紫色(RGB=[255,0,255])の地図
give @s filled_map[map_id=0,map_color=16711935]
```

### map_decorations
`Decorations`タグからの変更
地図の上に配置されるマーカーのリストを保持(デフォルト:`{}`)
内容を変更した際はワールドの再読み込みが必要(新しく追加する分には不要)
- **`type`:** マーカーの種類を設定
    - `player`:白色の矢印(現在位置)
    - `frame`:緑色の矢印(地図の入った額縁の位置)
    - `red_marker`:赤色の矢印
    - `blue_marker`:青色の矢印
    - `target_x`:白色の×印
    - `target_point`:赤い三角形
    - `player_off_map`:大きな白丸(マップ外の近いプレイヤーの位置‌)
    - `player_off_limits`:小さな白丸(マップ外の遠いプレイヤーの位置‌)
    - `mansion`:森の洋館
    - `monument`:海底神殿
    - `banner_white`:白色の旗
    - `banner_orange`:橙色の旗
    - `banner_magenta`:赤紫色の旗
    - `banner_light_blue`:空色の旗
    - `banner_yellow`:黄色の旗
    - `banner_lime`:黄緑色の旗
    - `banner_pink`:桃色の旗
    - `banner_gray`:灰色の旗
    - `banner_light_gray`:薄灰色の旗
    - `banner_cyan`:青緑色の旗
    - `banner_purple`:紫色の旗
    - `banner_blue`:青色の旗
    - `banner_brown`:茶色の旗
    - `banner_green`:緑色の旗
    - `banner_red`:赤色の旗
    - `banner_black`:黒色の旗
    - `red_x`:赤色の×印(埋もれた宝)
    - `village_desert`:砂漠の村
    - `village_plains`:平原の村
    - `village_savanna`:サバンナの村
    - `village_snowy`:雪原の村
    - `village_taiga`:タイガの村
    - `jungle_temple`:ジャングルの寺院
    - `swamp_hut`:ウィッチの小屋
- **`x`:** 地図の左右の位置
- **`z`:** 地図の上下の位置
- **`rotation`:** 北から時計回りの回転角度
```
give @s filled_map[map_id=0,map_decorations={"custom1":{type:"red_marker",x:0.0,z:0.0,rotation:180.0f},"custom2":{type:"banner_lime",x:10.0,z:50.0,rotation:0.0f},"custom3":{type:"swamp_hut",x:50.5,z:20.5,rotation:20.2f}}]
```

### map_id
`map`タグからの変更
地図のマップIDを保持
```
give @s filled_map[map_id=0]
```

### max_damage
アイテムの最大耐久値を制御
`max_stack_size`が1の時のみ指定可能
正の整数で指定
```
give @s iron_axe[max_damage=1000]
```

### max_stack_size
アイテムの最大スタック個数を指定(プレリリース1で耐久値のあるアイテムに適用不可)
1~99の整数で指定
アイテムによって暗黙のデフォルト値がある(デフォルト:`1`,`16`,`64`)
```
give @s apple[max_stack_size=99]
```

### note_block_sound
`BlockEntityTag.note_block_sound`タグからの変更
音符ブロックの上に設置されたプレイヤーヘッドによって再生されるサウンドの制御
設置時プレイヤーヘッドブロックにコピーされる
```
give @s player_head[note_block_sound="entity.generic.explode"]
```

### ominous_bottle_amplifier
不吉な瓶の不吉な予感のエフェクトのレベルを制御
0~4の整数で指定
```不吉な瓶(1.21で追加)の不吉な予感レベル3
give @s ominous_bottle[ominous_bottle_amplifier=2]
```

### pot_decorations
`BlockEntityTag.sherds`タグからの変更
装飾ポットの両側に適用された破片を保持(デフォルト:`["brick","brick","brick","brick"]`)
設置時装飾ポットブロックにコピーされる
```
give @s decorated_pot[pot_decorations=["arms_up_pottery_sherd","angler_pottery_sherd","danger_pottery_sherd","shelter_pottery_sherd"]]
```

### potion_contents
`Potion`、`CustomPotionColor`、`Custom_potion_Effects`タグからの変更
ポーション(ポーション、スプラッシュポーション、残留ポーション)、アイテムに適用されたポーション(効果付きの矢)の内容の保持
- **`potion`:**
    - 指定したポーションタイプから全ての効果を継承する
- **`custom_color`:** ポーションの視覚的な色をRGB値で指定
    - $65536×(R)+256×(G)+(B)$
- **`custom_effects`:** エフェクト効果のリスト(デフォルト:`[]`)
    - アイテムが適用するカスタム効果のリスト
```:跳躍の矢
give @s tipped_arrow[potion_contents={potion:"leaping"}]
```
```:10秒間発光と攻撃力上昇Lv10が付く黄色(RGB=[255,255,0])のポーション
give @s potion[potion_contents={custom_color:16776960,custom_effects:[{id:glowing,duration:200},{id:strength,amplifier:9,duration:200}]}]
```

### profile
`SkullOwner`タグからの変更
プレーヤーヘッドに表示されるスキンの制御
設置時プレイヤーヘッドブロックにコピーされる
- **`name`:**
    - プレイヤープロフィール名
    - `name`のみ指定の場合、対応するプレイヤーIDとスキンデータに変換される
- **`id`:** (オプション)
    - uuid、プレイヤープロフィールID
- **`properties`:** (オプション)
    - **`name`:**
      - プロパティ名(例:`textures`)
    - **`value`:**
      - base64でエンコードされたテクスチャデータ
    - **`signature`:** (オプション)
```:羊の頭
give @s player_head[profile={name:"MHF_Sheep"}]
```
```:ビールの頭
give @s player_head[profile={properties:[{name:"textures",value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzk0Y2E1YmRhMDU2NDQ4OTc5NzUwNTQ1OTAxMDM3MjY0MTM1N2Q5ODdjODI0MWY3MDNiZmFkZjZmM2M1MDNlNCJ9fX0="}]}]
```

### rarity
アイテムの希少度を制御(アイテム名のデフォルト色を制御)
エンチャントされたアイテムは希少度が一つ上がる
金のリンゴやコマンドブロックなどの特別なアイテムには暗黙のデフォルト値がある
- `common`:白色の名前(デフォルト)
- `uncommon`:黄色の名前
- `rare`:水色の名前
- `epic`:薄紫の名前
```
give @s apple[rarity=rare]
```

### recipes
`Recipes`タグからの変更
知恵の本を使用時にロックを解除されるレシピのリスト
レシピIDのリストで指定
```
give @s minecraft:knowledge_book[minecraft:recipes=["shulker_box","end_crystal"]]
```

### repair_cost
`RepairCost`タグからの変更
金床使用時で必要な作業コストの設定
0以上の整数で指定(デフォルト:0)
```:作業コストが100の弓
give @s bow[repair_cost=100]
```


### stored_enchantments
`StoredEnchantments`タグからの変更
エンチャントされた本のエンチャントとレベルを保存(デフォルト:`{levels: {}}`)
アイテムにこのエンチャントの効果は適応されない
- **`levels`:**
    - エンチャントIDとそれに対応するエンチャントレベルを指定
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの6番目のビット(32)から変更
    - `false`の場合ツールチップからエンチャントを非表示
```:耐久力3とパンチ1のエンチャントされた本(エンチャント表示)
give @s enchanted_book[stored_enchantments={levels:{"unbreaking":3,"punch":1}}]
```

### suspicious_stew_effects
`effects`タグからの変更
怪しいシチューを食べた時に適用される効果を保持
- **`id`:** エフェクトIDの指定
- **`duration`:** 効果時間(tick)を整数で指定(デフォルト:160)
```:食べると発光と透明化を8秒間受ける怪しげなシチュー
give @s suspicious_stew[suspicious_stew_effects=[{id:"glowing",duration:160},{id:"invisibility",duration:160}]]
```

### tool
- ツールとしてアイテムの動作を制御
- **`rules`:** 特定のブロックの採掘速度やドロップの制御
  - **`blocks`:**
    - 単一のブロック、ブロックのリスト、`#`が付いたブロックタグで指定
  - **`speed`:** float値で指定(オプション)
    - blocksで指定したブロックの採掘速度
  - **`correct_for_drops`:** ブール値で指定(オプション)
    - ブロックにとって正しいツールかを制御
    - `true`の場合、Loot Table内のブロックにとって適切なツールとなる
- **`default_mining_speed`:** float値で指定
  - `rules`に一致しない場合の採掘速度の指定(デフォルト:`1.0`)
- **`damage_per_block`:** 0以上の整数で指定
  - ブロック採掘時の耐久値の減少量
```:木材を速く採掘できる棒
give @s stick[tool={rules:[{blocks:"#logs",speed:10.0},{blocks:"#planks",speed:20.0}]}]
```

### trim
`Trim`タグからの変更
アイテムに適用されたトリムを保持
- **`pattern`:** 装飾の種類のパターンIDを指定
- **`material`:** 装飾の素材のマテリアルIDを指定
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの8番目のビット(128)から変更
    - `false`の場合ツールチップからトリム非表示
```:ダイヤモンドを使った旋風の装飾のネザライトのチェストプレート
give @s netherite_chestplate[trim={material:"diamond",pattern:"flow"}]
```

### unbreakable
`Unbreakable`タグからの変更
使用時にアイテムの耐久値を減らさな設定
- **`show_in_tooltip`:** ブール値で指定(デフォルト:`true`)
    - `HideFlags`タグの3番目のビット(4)から変更
    - `false`の場合ツールチップから不可壊を非表示
```:壊れない弓
give @s bow[unbreakable={}]
give @s bow[unbreakable={show_in_tooltip:false}]
```

### writable_book_content
`pages`、`filtered_pages`タグからの変更
本と羽ペンの中身を設定(本と羽ペンのみデフォルト:`{pages:[]}`)
- **`pages`:**
    - **`raw`:**
        - ページに書かれている文字列
    - **`filtered`:** (オプション)
        - フィルターされたページの内容
        - チャットフィルターが有効になっているプレイヤーにのみ表示
```
give @s writable_book[writable_book_content={pages:[{raw:"1ページ目"},{raw:"2ページ目"}]}]
```

### written_book_content
`pages`、`filtered_pages`、`title`、`filtered_title`、`author`、`generation`、`resolved`タグからの変更
書かれた本の内容とメタデータを保持
- **`pages`:**
    - `writable_book_contents`の`pages`と同じだが、JSONテキストも使用できる
- **`title`:**
    - 本のタイトルを`pages`と同じ形式の文字列指定
- **`author`:**
    - 本の著作者名の設定
- **`generation`:** 
    - 0~2で指定、0はオリジナル
    - 本のコピーされた回数の設定
- **`resolved`:** ブール値で指定
    - この本がプレイヤーに開かれたかどうかの指定
    - `false`の場合、プレイヤーが開くと`true`に変わる(エンティティセレクターやスコアの置換に使用)
```
give @s written_book[written_book_content={pages:[{raw:'{text:"1ページ目",color:"red"}',"bold":true},{raw:'[{text:"1行目\\n"},{text:"2行目"}]'}],author:"著作者",title:{raw:"タイトル"},resolved:false}]
```


<!--
# 1.20.5で追加される技術的要素まとめ
## 進捗（Advancements）
<details><summary>進捗を表示</summary>

### default_block_use
ドアを開く、作業台を使用する等デフォルトのブロックのインタラクトによってトリガーされる

### any_block_use
デフォルトのブロックのインタラクトに加えて、骨粉を使用する、ブラシを使用する等のアイテムを使ったあらゆる種類のブロックのインタラクトによってトリガーされる

### crafter_recipe_crafted
自動作業台が作成されたアイテムを排出したときにトリガーされる
- **`player`:**
近くにいるプレイヤーの条件
- **`recipe_id`:**
作成中のレシピIDの条件
- **`ingredients`:**
作成中のレシピを構成する材料の条件のリスト

### fall_after_explosion
プレイヤーが爆発によって上に吹き飛ばされた後、落下し始めたときにトリガーされる
- **`player`:**
落下するプレイヤーの条件
- **`start_position`:**
プレーヤーが爆発を受けた時にいる位置の条件
- **`distance`:**
プレイヤーが`start_position`からどのくらい離れているかの条件
- **`cause`:**
爆発を引き起こしたエンティティの条件
</details>


## 属性（Attributes）
<details><summary>属性を表示</summary>

### generic.scale
生きているエンティティのサイズの制御
範囲：0.0625〜16（デフォルト:`1.0`）
- 特定のエンティティは制限あり
    - シュルカーは通常の3倍までしか拡大できない
    - エンダードラゴンは変更できない

### player.block_interaction_range
プレイヤーが届くブロックまでの距離の制御
範囲：0〜64（デフォルト:`4.5`）

### player.entity_interaction_range
プレイヤーが届くエンティティまでの距離の制御
範囲：0〜64（デフォルト:`3.0`）

### generic.step_height
エンティティがジャンプせずに登れる最大高さの制御
範囲：0〜10（デフォルト:`0.6`）

### generic.gravity
エンティティに影響を与える重力の制御
加速度（ブロック/ティック^2）を指定する
マイナスの場合、上向きに落下する
範囲：-1～1（デフォルト:`0.08`）

### generic.safe_fall_distance
ダメージを受けずに落下できるブロック数の制御
マイナスの場合、落下開始時にマイナスの数値分だけ落下ダメージが加算された状態になる
範囲：-1024～1024（デフォルト:`3.0`）

### generic.fall_damage_multiplier
落下ダメージに設定された値の倍率の制御
範囲：0～100（デフォルト:`1.0`）

### generic.jump_strength
`horse.jump_strength`から名前変更
全ての生きているエンティティに適用可能に変更
生きているエンティティの基礎ジャンプ力の制御
範囲：0～32（デフォルト:`0.42`）

### player.block_break_speed
プレイヤーのブロック破壊速度の倍率の制御
範囲：0～1024（デフォルト:`1.0`）
</details>


## コマンド（Commands）
<details><summary>コマンドを表示</summary>

### attribute
#### 修飾子操作の名前を変更
- `add`から`add_value`に変更
- `multiply_base`から`add_multiplied_base`に変更
- `multiply`から`add_multiplied_total`に変更

### execute
#### サブコマンドの`if|unless`に`items`を追加
コマンドを使用してアイテムをカウントできる場合に実行
構文：`if|unless items <source> <slots> <item_predicate>`
- **items:**
    - **`<source>`:**
    `item`コマンドで使用されるものと同じ
        - `block <x> <y> <z>`
        - `entity <target>`
    - **`<slots>`:**
        - 単一スロット（`container.0`、`player.cursor`など）
        - 範囲スロット（`container.*`、`armor.*`など）
    - **`<item_predicate>`:**
    `clear`コマンドのアイテム条件と同じ
```:ホットバーにある耐久値の減っていないダイヤのツルハシの個数を返す
execute if items entity @s hotbar.* diamond_pickaxe[damage=0]
```

### gamerule
- **`spawnChunkRadius`**
スポーンチャンクのサイズを変更
範囲：0～32（デフォルト:`2`）
```:スポーンチャンクのサイズを0にする
gamerule spawnChunkRadius 0
```

### item

### loot

### particle
#### 追加されたパーティクル
- `vault_connection`
- `gust_emitter_large`
- `gust_emitter_small`
- `dust_piller`
- `infested`
- `item_cobweb`
- `small_gust`
- `raid_omen`
- `trial_omen`
- `trial_spawner_detection_ominous`
- `ominous_spawning`

#### 削除されたパーティクル
- `gust_dust`
- `gust_emitter`

#### 構文変更
- **ブロック系パーティクル**
`block_marker`、`block`、`falling_dust`、`dust_pillar`の変更
    - **block_state:**
    デフォルトのブロックの状態を表すプレーンなブロック名も受け入れる
```:例1
particle falling_dust{block_state:"diamond_block"} ~ ~1 ~
```
```:例2
particle block{block_state:{Name:redstone_lamp,Properties:{lit:"true"}}} ~ ~1 ~
```
- **item**
    - **`item`:**
    デフォルトのコンポーネントを含むプレーンなアイテムも受け入れる
`count`は無視される
```:例1
particle item{item:apple} ~ ~1 ~
```
```:例2
particle item{item:{id:"diamond",components:{custom_model_data:1}}} ~ ~1 ~
```
- **dust_color_transition**
    - **`from_color`:**
    変化前の色をRGBを表すリストで指定
    - **`to_color`:**
    変化後の色をRGBを表すリストで指定
    - **`scale`:**
    ダストのサイズを指定(0.01～4)
```:赤から青に変わるダスト
particle dust_color_transition{from_color:[1,0,0],to_color:[0,0,1],scale:0.9} ~ ~1 ~
```
- **dust**
    - **`color`:**
    RGBを表すリストで指定
    - **`scale`:**
    ダストのサイズを指定(0.01～4)
```:赤色でスケール1のダスト
particle dust{color:[1,0,0],scale:1} ~ ~1 ~
```
- **entity_effect**
    - **`color`:**
    RGBAを表すリストで指定
```:赤い半透明のエンティティエフェクト
particle entity_effect{color:[1.0,0.0,0.0,0.6]} ~ ~1 ~
```
- **sculk_charge**
    - **`roll`:**
    表示する傾きをラジアンで指定
```:傾きが1.5ラジアンのスカルクチャージパーティクル
particle sculk_charge{roll:1.5} ~ ~1 ~
```
- **shriek**
    - **`delay`:**
    パーティクルが表示されるまでにかかる時間をtickで指定
```:10tick後に表示されるシュリークパーティクル
particle shriek{delay:10} ~ ~1 ~
```
- **vibration**
    - **`destination`:**
    振動が向かう先の座標を指定
    - **`arrival_in_ticks`:**
    振動が指定座標に向かうまでにかかる時間をtickで指定
```:実行座標から座標:[0,0,0]に1tickかけて飛ぶ振動パーティクル
particle vibration{destination:{type:block,pos:[0,0,0]},arrival_in_ticks:1} ~ ~ ~
```

### playsound
ミキサーとプレイヤーを指定せずに実行できるように変更
指定しない場合は、`master`と`@s`になる
```
playsound entity.player.levelup
```

### transfer
プレーヤーを別のサーバーへ転送するコマンド
転送されるサーバーの`server.properties`の`accepts-transfers`を`true`にすることで接続を受け入れられる

### その他
- ポーションエフェクトレベル更新
  - 全てのポーションエフェクトの`amplifier`を0~255の範囲に制限する
  - ポーション効果のレベル128以上で変化していた効果がなくなった

- スロット引数の追加
- アイテム構文の更新
- ルート関数のインライン定義の追加
</details>


## アイテムコンポーネント（Components）
<details><summary>アイテムコンポーネントを表示</summary>

</details>


## ルートテーブル（Loot Tables）


## データタグ（NBT）
### Block Data
### Entity Data
- `body_armor_item`,`body_armor_drop_chance`追加
馬の`ArmorItem`、ラマなどの`DecorItem`、狼の`armor`の代わりに`body_armor_item`と`body_armor_drop_chance`を使用


## レシピ（Recipes）


## タグ（Tags）
<details><summary>タグを表示</summary>

### banner_pattern
- バナーパターンがデータパックの`data/<namespace>/banner_pattern/<id>`から読み込まれるように変更
  - `asset_id`によってテクスチャの位置も決まる
  `custom:pattern`の場合、`assets/custom/textures/entity/banner/pattern.png`、`assets/custom/textures/entity/shield/pattern.png`を読み込む
  - `translation_key`は翻訳キーの接頭辞になる
  `block.minecraft.banner.custom.pattern`の場合、`block.minecraft.banner.custom.pattern.<dye color>`になる

### blocks
- `armadillo_spawnable_on`
アルマジロがスポーンできるブロック
- `blocks_wind_charge_explosions`
ウィンドチャージ(1.21)の攻撃を受けた時に爆発の影響を受けないブロック
- `badlands_terracotta`
荒野バイオームに生成されるテラコッタの一覧
アルマジロがスポーンできるブロック`armadillo_spawnable_on`に使用
- `does_not_block_hoppers`
ホッパーの上に配置してもホッパーを無効にしないブロック
- 採掘に必要なツールのタグを組み合わせたもの
  - `incorrect_for_wooden_tool`
  - `incorrect_for_gold_tool`
  - `incorrect_for_stone_tool`
  - `incorrect_for_iron_tool`
  - `incorrect_for_diamond_tool`
  - `incorrect_for_netherite_tool`

### damage_types
- `spit`
ラマの唾の攻撃
- `bypasses_wolf_armor`
オオカミの鎧で吸収できない攻撃
- `is_player_attack`
プレイヤーによって行われる攻撃

### enchantment
- `tooltip_order`
ツールチップにエンチャントがリストされる順序を制御

### entity_types
- `ignores_poison_and_regen`
毒と再生効果の影響を受けないエンティティ
- `illager_friends`
邪悪な村人が味方とするエンティティ
- `inverted_healing_and_harm`
回復とダメージ効果が反転したエンティティ
- `not_scary_for_pufferfish`
フグが見ても膨らまないエンティティ
- `wither_friends`
ウィザーが敵対せず、ウィザーに害を及ぼさないエンティティ
- `sensitive_to_bane_of_arthropods`
虫特効の影響を受けるエンティティ
- `sensitive_to_impaling`
水生特効の影響を受けるエンティティ
- `sensitive_to_smite`の追加
アンデット特攻のエンチャントの効果を受けるエンティティ
- `immune_to_oozing`
滲出(1.21)エフェクトを受けられないエンティティ
- `immune_to_infested`
虫食い(1.21)エフェクトを受けられないエンティティ
- `redirectable_projectile`
プレイヤーが見ている方向にパンチしたりそらせたりできる発射物用のエンティティ

### items
#### 追加されたアイテムタグ
- `dyeable`
染色可能なアイテム
- どの装備にどのエンチャントを付けられるかを制御
  - `enchantable/foot_armor`
  - `enchantable/leg_armor`
  - `enchantable/chest_armor`
  - `enchantable/head_armor`
  - `enchantable/armor`
  - `enchantable/weapon`
  - `enchantable/sword`
  - `enchantable/mining`
  - `enchantable/mining_loot`
  - `enchantable/fishing`
  - `enchantable/trident`
  - `enchantable/durability`
  - `enchantable/bow`
  - `enchantable/equippable`
  - `enchantable/crossbow`
  - `enchantable/vanishing`
- `meat`
肉系のアイテム
- 対応するMobにアイテムを与えたり、誘惑したりできるかを制御
  - `piglin_food`
  - `fox_food`
  - `cow_food`
  - `goat_food`
  - `sheep_food`
  - `wolf_food`
  - `cat_food`
  - `horse_food`
  - `horse_tempt_items`
  - `camel_food`
  - `armadillo_food`
  - `bee_food`
  - `chicken_food`
  - `frog_food`
  - `hoglin_food`
  - `llama_food`
  - `llama_tempt_items`
  - `ocelot_food`
  - `panda_food`
  - `pig_food`
  - `rabbit_food`
  - `strider_food`
  - `strider_tempt_items`
  - `turtle_food`
  - `parrot_food`
  - `parrot_poisonous_food`

#### 削除されたアイテムタグ
- `tools`
`breaks_decorated_pots`と重複していたため

#### 変更されたアイテムタグ
- `axolotl_food`
`axolotl_tempt_items`から変更
</details>


## オオカミの種類（wolf_variant）
<details><summary>オオカミの種類を表示</summary>

オオカミの見た目を自由に変更することが可能になった
データパックの`data/<namespace>/wolf_variant/<id>.json`に追加することで新しく追加される
- **`wild_texture`:**
野生の時のオオカミのテクスチャを指定
- **`tame_texture`:**
飼いならされた時のオオカミのテクスチャを指定
- **`angry_texture`:**
怒っている時のオオカミのテクスチャを指定
- **`biome`:**
この種類のオオカミが自然にスポーンするバイオームを指定
```json:variantがwoodsのオオカミ
{
    "angry_texture": "minecraft:entity/wolf/wolf_woods_angry",
    "biomes": "minecraft:forest",
    "tame_texture": "minecraft:entity/wolf/wolf_woods_tame",
    "wild_texture": "minecraft:entity/wolf/wolf_woods"
}
```
</details>

-->


# スナップショット毎の変更
<!-- <details><summary>スナップショット毎の変更を表示する</summary> -->

## 23w51a, 23w51b(datapack:27)
### Damage Types
- `wind_charge`追加(1.21)
- `spit`追加
- ラマの唾のダメージタイプが`spit`に変更

### Attributes
- `generic.scale`追加
リビングエンティティのサイズの制御
範囲：0.0625〜16(1)
- `player.block_interaction_range`追加
プレイヤーが届くブロックまでの距離の制御
※24w03aでgenericからplayerに変更された
範囲：0〜64(4.5)
- `player.entity_interaction_range`追加
プレイヤーが届くエンティティまでの距離の制御
※24w03aでgenericからplayerに変更される
範囲：0〜64(3)
- `generic.step_height`追加
エンティティがジャンプせずに登れる最大高さの制御
範囲：0〜10(0.6)



## 24w03a, 24w03b(datapack:28)
### Commands
- `gamerule`の`spawnChunkRadius`追加
スポーンチャンクのサイズ変更
範囲：0〜32(2)

### NBT
- 村人に`ignoreTags`追加※24w09aで削除される
`true`にすることで、取引で異なるタグを持つアイテムを受け入れるようになる

### Server
- `accepts-transfers`の追加
サーバーがプレイヤーを別のサーバーに自動的に接続させられるようになる
`server.properties`の`accepts-transfers`を`true`にする事で、別のサーバーからのプレイヤーの接続を受け入れられる
- Cookieパケットの導入
カスタムサーバーがクライアントのデータを最大5KB保存し、サーバー間転送時に認証やカスタムゲームデータ等の情報を渡すことができる
プレイヤー切断時に削除される

### Enchantments
- `minecraft:sweeping`から`minecraft:sweeping_edge`に変更
範囲ダメージ増加のエンチャントIDの変更

### Advancements
- `default_block_use`追加
ドアを開く、作業台を使用する等デフォルトのブロックのインタラクトによってトリガーされる
- `any_block_use`追加
デフォルトのブロックのインタラクトに加えて、骨粉を使用する、ブラシを使用する等のアイテムを使ったあらゆる種類のブロックのインタラクトによってトリガーされる

### Item Tags
- どのエンチャントをどの装備に付けられるかを制御するアイテムタグの追加
  - `minecraft:enchantable/foot_armor`
  - `minecraft:enchantable/leg_armor`
  - `minecraft:enchantable/chest_armor`
  - `minecraft:enchantable/head_armor`
  - `minecraft:enchantable/armor`
  - `minecraft:enchantable/weapon`
  - `minecraft:enchantable/sword`
  - `minecraft:enchantable/mining`
  - `minecraft:enchantable/mining_loot`
  - `minecraft:enchantable/fishing`
  - `minecraft:enchantable/trident`
  - `minecraft:enchantable/durability`
  - `minecraft:enchantable/bow`
  - `minecraft:enchantable/equippable`
  - `minecraft:enchantable/crossbow`
  - `minecraft:enchantable/vanishing`

### Entity Types
- `minecraft:ignores_poison_and_regen`追加
毒と再生効果の影響を受けないエンティティ
- `minecraft:illager_friends`追加
邪悪な村人が味方とするエンティティ
- `minecraft:inverted_healing_and_harm`追加
回復とダメージ効果が反転したエンティティ
- `minecraft:not_scary_for_pufferfish`追加
フグが見ても膨らまないエンティティ
- `minecraft:wither_friends`追加
ウィザーが敵対せず、ウィザーに害を及ぼさないエンティティ
- `minecraft:sensitive_to_bane_of_arthropods`追加
虫特効の影響を受けるエンティティ
- `minecraft:sensitive_to_impaling`追加
水生特効の影響を受けるエンティティ
- `deflects_projectiles`追加(1.21)
ブリーズの様に投擲物を反射するエンティティ
ブリーズは影響しない（バグかも）
- `deflects_arrows`と`deflects_tridents`タグの消去(1.21)

### Block Tags
- `armadillo_spawnable_on`追加
アルマジロがスポーンできるブロック

### Particle
- `gust_dust`削除



## 24w04a(datapack:29)
### Commands
- `transfer`追加
プレーヤーを別のサーバーへ転送するコマンド


## 24w05a, 24w05b(datapack:30)
### NBT
- `body_armor_item`,`body_armor_drop_chance`追加
`HandItems`、`ArmorItems`のnbtを持つ全てのエンティティに、`body_armor_item`と`body_armor_drop_chance`を追加し、`HandItems`、`ArmorItems`と同じ方法で処理する
馬や狼などの非人型エンティティの`ArmorItem`、`DecorItem`、`armor`の代わりに`body_armor_item`と`body_armor_drop_chance`を使用する
- `armor.body`追加
`item`コマンドなどで使用するスロット参照から`horse.armor`が無くなり、代わりに`armor.body`を使用する
- アイテムやエンティティのポーションエフェクトデータのデフォルト値がエンコードしないよう変更
  - `amplifier`: 0
  - `duration`: 0
  - `ambient`: false
  - `show_particles`: true
- 全てのポーションエフェクトの`amplifier`を0~127の範囲に制限する
マイナスエフェクトが使えなくなる
※24w06aで再び変更される

### Particle
- `vault_connection`追加

### Item Tag
- `minecraft:dyeable`追加

### Vault block data(1.21)
- `config`
  - `loot_table`
  宝物庫のロック解除時に入手できるアイテム
  - `override_loot_table_to_display`
  宝物庫内のアイテム表示に使用するルートテーブル
  存在しない場合は`loot_table`を使用する
  - `activation_range`
  宝物庫のロックを解除していないプレイヤーが宝物庫をアクティブ化する範囲
  - `deactivation_range`
  宝物庫を非アクティブ化するために、全てのプレイヤーが離れなければいけない範囲
  - `key_item`
  宝物庫のロックを解除するために必要なアイテム
  カウントとNBTの両方一致する必要がある
  ※24w09aでオプションに変更
- `server_data`
  - `rewarded_players`
 　 この宝物庫からすでに報酬を受け取っているプレーヤーのUUIDリスト
  - `state_updating_resumes_at`
  宝物庫がブロック状態の変化を処理するゲーム時間
  - `items_to_eject`
  ルートテーブルによってロールされ、排出されるのを待っているアイテムのリスト
  - `total_ejections_needed`
  排出する必要があるアイテムスタックの合計量
- `shared_data`
  - `display_item`
  現在表示されているアイテム
  - `connected_players`
  宝物庫の範囲内にいるプレーヤーのUUIDリスト
  - `connected_pa​​rticles_range`
  宝物庫がパーティクル表示され始める前にプレイヤーがいないといけない範囲

<details><summary>宝物庫のブロックデータ例</summary>

```jsonnet: 
{
    config: {
        loot_table: "minecraft:chests/trial_chambers/reward",
        activation_range: 4,
        deactivation_range: 4.5,
        key_item: {
            Count:1,
            id: "minecraft:trial_key"
        }
    },
    server_data: {
        state_updating_resumes_at: 657418L
    },
    shared_data: {
        connected_players: [
            [I; 0,0,0,0]
        ],
        display_item: {
            Count: 1,
            id: "minecraft:emerald"
        }
    }
}
```

</details>



## 24w06a(datapack:31)
### Attributes
- `generic.gravity`追加
エンティティに影響を与える重力の制御
マイナスの場合、上向きに落下する
範囲：-1～1(0.08)
- `generic.safe_fall_distance`追加
ダメージを受けずに落下できるブロック数の制御
マイナスの場合、落下開始時にマイナスの数値分だけ落下ダメージが加算された状態になる
範囲：-1024～1024(3)
- `generic.fall_damage_multiplier`追加
落下ダメージに設定された値を乗算する制御
範囲：0～100(1)
- `horse.jump_strength`が`generic.jump_strength`に変更
基本的なジャンプ力の制御
すべてのリビングエンティティに適用できる
範囲：0～32(0.42)
- `player.block_break_speed`追加
プレイヤーのブロック破壊速度の制御
範囲：0～1024(1)

### NBT
- 全てのポーションエフェクトの`amplifier`を再び0~255の範囲に制限する
127を超える浮遊、採掘疲労などの効果が正常に動作するよう変更
依然としてマイナスエフェクトは使えない
- 全てのブロック位置が3つの整数の配列として保存されるように変更
ハチの巣や養蜂箱の`flower_pos`、`hive_pos`やエンドゲートウェイの`exit_portal`などが`{X:0,Y:0,Z:0}`から`[I;0,0,0]`のようになった
- エンドクリスタルの`BeamTarget`が`beam_target`に変更
- リードを付けられるエンティティの`Leash`が`leash`に変更
- パトロールMOBの`PatrolTarget`が`patrol_target`に変更
- エンドゲートウェイの`ExitPortal`が`exit_portal`に変更
- 行商人の`WanderTarget`が`wander_target`に変更

### Block Tags
- `minecraft:blocks_wind_charge_explosions`追加
ウィンドチャージ(1.21)の攻撃を受けた時に爆発の影響を受けないブロック
- `minecraft:badlands_terracotta`追加
荒野バイオームに生成されるテラコッタの一覧
アルマジロがスポーンできるブロック`armadillo_spawnable_on`に使用

### Particle
- `gust_emitter`を削除
- `gust_emitter_large`を追加
- `gust_emitter_small`を追加


## 24w07a(datapack:32)
### Block Tags
- `minecraft:does_not_block_hoppers`追加
ホッパーの上に設置してもホッパーを無効にしないブロック

### Loot Tables
- `gameplay/panda_sneeze`追加
パンダがくしゃみをしたときにドロップするアイテム



## 24w09a(datapack:33)
### Item Stack Components（コンポーネント）
アイテムのスタックにあるNBTデータが全てコンポーネントに置き換えられる
データパック内のアイテムが参照される全ての場所で変更が適応される
コマンドで使用する場合はブロック状態を記述する方法と同じように`[]`で指定できる
旧アイテムのカスタムタグは`custom_data`コンポーネントに保存され、ゲームによって直接使用されない

#### `custom_data`
  - このデータはゲームで使用しないNBTオブジェクトを保存する
  - アイテムのカスタムデータストレージに使用できる
  - バージョンをアップデートした時にアイテムタグ内のゲーム以外のデータがここに格納される
```:custom_dataの例
give @s apple[custom_data={Tag1:"custom",Tag2:"custom"}]
```
```:コマンド内の構文でコンポーネントを使用する例(※24w12aで部分一致等の方法追加)
clear @s apple[custom_data={Tag1:"custom",Tag2:"custom"}]
```

#### `damage`
  - `Damage`タグからの変更
  - 耐久値の最大値から減少する量
  - 0以上の整数で指定(デフォルト:0)
```:耐久値が100減った弓
give @s bow[damage=100]
```

#### `repair_cost`
  - `RepairCost`タグからの変更
  - 金床使用時で必要な作業コストの設定
  - 0以上の整数で指定(デフォルト:0)
```:作業コストが100の弓
give @s bow[repair_cost=100]
```

#### `unbreakable`
  - `Unbreakable`タグからの変更
  - 使用時にアイテムの耐久値を減らさな設定
  - `show_in_tooltip`の指定(デフォルト:`true`)
      - `HideFlags`タグの3番目のビット(4)から変更
      - `false`の場合ツールチップから不可壊を非表示
```:壊れない弓
give @s bow[unbreakable={}]
give @s bow[unbreakable={show_in_tooltip:false}]
```

#### `enchantments`
  - `Enchantments`タグからの変更
  - アイテムのエンチャントとそのレベルのリストを保存(デフォルト:`{levels: {}}`)
  - `levels`でエンチャントID(string)とレベル(int:0～255)を指定
  - `show_in_tooltip`の指定(デフォルト:`true`)
      - `HideFlags`タグの最初のビット(1)から変更
      - `false`の場合ツールチップからエンチャントを非表示
```:耐久力3とパンチ1の付いた弓(エンチャント非表示)
give @s bow[enchantments={levels:{"unbreaking":3,"punch":1},show_in_tooltip:false}]
```

#### `stored_enchantments`
  - `StoredEnchantments`タグからの変更
  - エンチャントされた本のエンチャントとレベルを保存(デフォルト:`{levels: {}}`)
  - アイテムにこのエンチャントの効果は適応されない
  - `levels`の指定
      - エンチャントIDとレベルを指定
  - `show_in_tooltip`の指定(デフォルト:`true`)
      - `HideFlags`タグの6番目のビット(32)から変更
      - `false`の場合ツールチップからエンチャントを非表示
```:耐久力3とパンチ1のエンチャントされた本(エンチャント表示)
give @s enchanted_book[stored_enchantments={levels:{"unbreaking":3,"punch":1}}]
```

#### `custom_name`
  - `display.Name`タグから変更
  - アイテムのカスタムネームを設定
```:カスタムネーム付きガラス
give @s glass[custom_name='{"text":"高級なガラス","color":"red"}']
```

#### `lore`
  - `display.Lore`タグからの変更
  - アイテムのツールチップに説明を追加できる(デフォルト:`[]`)
  - 64行まで追加可能(※24w10aで256に増加)
```:説明付きガラス
give @s glass[minecraft:lore=['{"text":"これは古くて"}','{"text":"ひびが入っている"}']]
```

#### `can_break`
  - `CanDestroy`タグからの変更
  - アドベンチャーモードでプレイヤーがこのアイテムで破壊できるブロックの設定
  - ルートテーブルや実績と同様に柔軟な記述形式に変更
  - `predicates`の指定
    - `block`: ブロック、ブロックのリスト、ハッシュタグ付きブロックタグで指定
    - `nbt`: ブロックエンティティのNBT指定(機能しないNBTがある※バグかも)
    - `state`: ブロックの状態の指定
  - `show_in_tooltip`の指定(デフォルト:`true`)
      - `HideFlags`タグの4番目のビット(8)から変更
      - `false`の場合ツールチップから破壊可能ブロック非表示
```:石指定
give @s minecraft:iron_pickaxe[can_break={blocks:"minecraft:stone"}]
```
```:原木タグのブロック指定(破壊可能ブロック非表示)
give @s minecraft:iron_axe[can_break={predicates:[{blocks:"#minecraft:logs"}],show_in_tooltip:false}]
```
```:testと書かれた看板指定
give @s minecraft:iron_axe[can_break={predicates:[{blocks:"#minecraft:all_signs",nbt:{front_text:{messages:['"test"', '""','""','""']}}}]}]
```
```:土と草ブロック・大釜level1指定
give @s minecraft:iron_pickaxe[can_break={predicates:[{blocks:["dirt","grass_block"]},{blocks:"minecraft:water_cauldron", state:{level:"1"}}]}]
```

#### `can_place_on`
  - `CanPlaceOn`タグからの変更
  - アドベンチャーモードのプレイヤーがこのアイテムを使用して配置できるブロックの設定
  - ルートテーブルや実績と同様に柔軟な記述形式に変更
  - `predicates`の指定
    - `can_break`コンポーネントの`predicates`と同じ
  - `show_in_tooltip`の指定(デフォルト:`true`)
      - `HideFlags`タグの5番目のビット(16)から変更
      - `false`の場合ツールチップから設置可能ブロック非表示

#### `dyed_color`
  - `display.color`タグからの変更
  - 染色可能なアイテムの色の設定(`#minecraft:dyeable`タグ)
  - `rgb`の指定(256階調(0～255)のRGBを10進数で指定)
  $65536×(R)+256×(G)+(B)$
  - `show_in_tooltip`の指定(デフォルト:`true`)
    - `HideFlags`タグの7番目のビット(64)から変更
    - `false`の場合ツールチップから染色コード非表示
```:水色(RGB=[0,255,255])の染色された革のブーツ
give @s leather_boots[dyed_color={rgb:65535,show_in_tooltip:false}]
```

#### `attribute_modifiers`
  - `AttributeModifiers`タグからの変更
  - 特定箇所に装備している時に適応する属性設定
  - 設定されていない場合、アイテムタイプのデフォルト属性(武器の攻撃ダメージなど)に基づいた暗黙のデフォルト値が設定される
  - `modifiers`の指定(デフォルト:`{modifiers:[]}`)
    - type:属性のID
    - slot:モディファイアの適応箇所(デフォルト:`any`)
      - `any`:下記の全て適応
      - `hand`:メインハンドかオフハンド
      - `armor`:全ての防具スロット
      - `mainhand`:メインハンド
      - `offhand`:オフハンド
      - `head`:頭
      - `chest`:胴体
      - `legs`:脚
      - `feet`:足
    - `uuid`:修飾子のUUID指定
    同じIDの修飾子は1つのみ存在できる
    - `name`
    任意の文字列(なんでもいい)
    - `amount`
    補正値の指定(`operation`で操作する)
    - `operation`:演算方法の指定(上から順に処理)
      - `add_value`
      元の値に`amount`を加算
      - `add_multiplied_base`
      元の値に(1+`amount`)を乗算
      - `add_multiplied_total`
      元の値に`add_multiplied_total`を指定した同じ修飾子全てから(1+`amount`)の値を乗算
  - `show_in_tooltip`の指定(デフォルト:`true`)
    - `HideFlags`タグの2番目のビット(2)から変更
    - `false`の場合ツールチップから追加効果非表示
```:足に装備するとジャンプ力が上がるブーツ
give @s diamond_boots[attribute_modifiers={modifiers:[{type:"generic.jump_strength",slot:feet,uuid:[0,0,0,1],name:"height jump",amount:1.0,operation:"add_multiplied_base"}]}]
```

#### `charged_projectiles`
  - `Charged`と`ChargedProjectiles`タグからの変更
  - クロスボウに装填されたすべての発射体を保持
  - アイテムスタックのリストで指定
  - 装填数の制限がなくなった
```:矢が5本装填されたクロスボウ
give @p minecraft:crossbow[minecraft:charged_projectiles=[{id:"arrow"},{id:"arrow"},{id:"arrow"},{id:"arrow"},{id:"arrow"}]]
```

#### `intangible_projectile`
  - クリエイティブモードのプレイヤーのみが拾える発射物の設定
  - クロスボウの`charged_projectiles`コンポーネント内のみ適応される
```:intangible_projectileが設定された矢
give @s arrow[intangible_projectile={}]
```
```:intangible_projectileが設定された矢が装填されたクロスボウ
/give @p crossbow[charged_projectiles=[{components:{"intangible_projectile":{}},count:1,id:"minecraft:arrow"}]]
```

#### `bundle_contents`
  - `Items`タグからの変更
  - バンドル内の全てのアイテムを保持
  - 削除するとアイテムをバンドルに追加できなくなる
  - アイテムスタックのリストで指定
```
give @s bundle[bundle_contents=[{id:"poisonous_potato"},{id:"baked_potato",count:30,components:{custom_name:'{"text":"焼いたやつ","color":"red"}'}}]]
```

#### `map_color`
  - `display.MapColor`タグからの変更
  - 地図のアイテムの色を設定
  - `rgb`の指定(デフォルト:4603950)
    - $65536×(R)+256×(G)+(B)$
```:紫色(RGB=[255,0,255])の地図
give @s filled_map[map_id=0,map_color=16711935]
```

#### `map_decorations`
  - `Decorations`タグからの変更
  - 地図の上に配置されるマーカーのリストを保持(デフォルト:`{}`)
  - 内容を変更した際はワールドの再読み込みが必要(新しく追加する分には不要)
  - `type`:マーカーの種類を設定
    - `player`:白色の矢印(現在位置)
    - `frame`:緑色の矢印(地図の入った額縁の位置)
    - `red_marker`:赤色の矢印
    - `blue_marker`:青色の矢印
    - `target_x`:白色の×印
    - `target_point`:赤い三角形
    - `player_off_map`:大きな白丸(マップ外の近いプレイヤーの位置‌)
    - `player_off_limits`:小さな白丸(マップ外の遠いプレイヤーの位置‌)
    - `mansion`:森の洋館
    - `monument`:海底神殿
    - `banner_white`:白色の旗
    - `banner_orange`:橙色の旗
    - `banner_magenta`:赤紫色の旗
    - `banner_light_blue`:空色の旗
    - `banner_yellow`:黄色の旗
    - `banner_lime`:黄緑色の旗
    - `banner_pink`:桃色の旗
    - `banner_gray`:灰色の旗
    - `banner_light_gray`:薄灰色の旗
    - `banner_cyan`:青緑色の旗
    - `banner_purple`:紫色の旗
    - `banner_blue`:青色の旗
    - `banner_brown`:茶色の旗
    - `banner_green`:緑色の旗
    - `banner_red`:赤色の旗
    - `banner_black`:黒色の旗
    - `red_x`:赤色の×印(埋もれた宝)
    - `village_desert`:砂漠の村
    - `village_plains`:平原の村
    - `village_savanna`:サバンナの村
    - `village_snowy`:雪原の村
    - `village_taiga`:タイガの村
    - `jungle_temple`:ジャングルの寺院
    - `swamp_hut`:ウィッチの小屋
  - `x`:地図の左右の位置
  - `z`:地図の上下の位置
  - `rotation`:北から時計回りの回転角度
```
give @s filled_map[map_id=0,map_decorations={"custom1":{type:"red_marker",x:0.0,z:0.0,rotation:180.0f},"custom2":{type:"banner_lime",x:10.0,z:50.0,rotation:0.0f},"custom3":{type:"swamp_hut",x:50.5,z:20.5,rotation:20.2f}}]
```

#### `map_id`
  - `map`タグからの変更
  - 地図のマップIDを保持
```
give @s filled_map[map_id=0]
```

#### `custom_model_data`
  - `CustomModelData`タグからの変更
  - アイテムモデルを設定
```
give @s carrot_on_a_stick[custom_model_data=1]
```

#### `potion_contents`
  - `Potion`、`CustomPotionColor`、`Custom_potion_Effects`タグからの変更
  - ポーション(ポーション、スプラッシュポーション、残留ポーション)、アイテムに適用されたポーション(効果付きの矢)の内容の保持
  - `potion`
    - 指定したポーションタイプから全ての効果を継承する
  - `custom_color`:ポーションの視覚的な色をRGB値で指定
    - $65536×(R)+256×(G)+(B)$
  - `custom_effects`:エフェクト効果のリスト(デフォルト:`[]`)
    - アイテムが適用するカスタム効果のリスト
```:跳躍の矢
give @s tipped_arrow[potion_contents={potion:"leaping"}]
```
```:10秒間発光と攻撃力上昇Lv10が付く黄色(RGB=[255,255,0])のポーション
give @s potion[potion_contents={custom_color:16776960,custom_effects:[{id:glowing,duration:200},{id:strength,amplifier:9,duration:200}]}]
```

#### `writable_book_content`
  - `pages`、`filtered_pages`タグからの変更
  - 本と羽ペンの中身を設定(本と羽ペンのみデフォルト:`{pages:[]}`)
  - `pages`
    - `text`※24w14aで`raw`に変更
      - ページに書かれている文字列
    - `filtered`(オプション)
      - フィルターされたページの内容
      - チャットフィルターが有効になっているプレイヤーにのみ表示
```
give @s writable_book[writable_book_content={pages:[{raw:"1ページ目"},{raw:"2ページ目"}]}]
```

#### `written_book_content`
  - `pages`、`filtered_pages`、`title`、`filtered_title`、`author`、`generation`、`resolved`タグからの変更
  - 書かれた本の内容とメタデータを保持
  - `pages`
    - `writable_book_contents`の`pages`と同じだが、JSONテキストも使用できる
  - `title`
    - 本のタイトルを`pages`と同じ形式の文字列指定
  - `author`
    - 本の著作者名の設定
  - `generation`(0~2で指定、0はオリジナル)
    - 本のコピーされた回数の設定
  - `resolved`
    - この本がプレイヤーに開かれたかどうかの指定
    - `false`の場合、プレイヤーが開くと`true`に変わる(エンティティセレクターやスコアの置換に使用)
```
give @s written_book[written_book_content={pages:[{raw:'{text:"1ページ目",color:"red"}',"bold":true},{raw:'[{text:"1行目\\n"},{text:"2行目"}]'}],author:"著作者",title:{raw:"タイトル"},resolved:false}]
```

#### `trim`
  - `Trim`タグからの変更
  - アイテムに適用されたトリムを保持
  - `pattern`:装飾の種類のパターンIDを指定
  - `material`:装飾の素材のマテリアルIDを指定
  - `show_in_tooltip`の指定(デフォルト:`true`)
    - `HideFlags`タグの8番目のビット(128)から変更
    - `false`の場合ツールチップからトリム非表示
```:ダイヤモンドを使った旋風の装飾のネザライトのチェストプレート
give @s netherite_chestplate[trim={material:"diamond",pattern:"flow"}]
```

#### `suspicious_stew`
  - `effects`タグからの変更
  - 怪しいシチューを食べた時に適用される効果を保持
  - `id`:エフェクトIDの指定
  - `duration`:効果時間(tick)を整数で指定(デフォルト:160)
```:食べると発光と透明化を8秒間受ける怪しげなシチュー
give @s suspicious_stew[suspicious_stew_effects=[{id:"glowing",duration:160},{id:"invisibility",duration:160}]]
```

#### `hide_additional_tooltip`
  - 設定した場合、「追加」ツールチップ部分を非表示にする（バナーパターン、装飾名、ミュージック名、飛翔時間など）
  - `HideFlags`タグの6番目のビット(32)から変更
```
give @s firework_rocket[hide_additional_tooltip={}]
```

#### `debug_stick_state`
  - `DebugProperty`タグからの変更
  - デバッグ棒を使用するときの選択したブロック状態のプロパティを保存
  - ブロックIDとブロックプロパティ名を指定
```:チェストは水の有無、かまどは着火を選択した状態のデバッグ棒
give @s debug_stick[debug_stick_state={"chest":"waterlogged","furnace":"lit"}]
```

#### `entity_data`
  - `EntityTag`タグからの変更
  - スポーンエッグやアーマースタンドなど、エンティティを生成するアイテムを使用するときのNBTを保存(エンティティを指定する`id`タグは必須)
```:小さいアーマースタンドを出すアレイのスポーンエッグ
give @s allay_spawn_egg[entity_data={id:"armor_stand",Small:1}]
```

#### `bucket_entity_data`
  - `NoAI`、`Silent`、`NoGravity`、`Glowing`、`Invulnerable`、`Health`、`Age`、`Variant`、`HuntingCooldown`、`BucketVariantTag`タグからの変更
  - バケツから配置されたエンティティに適用するNBTデータの保存(デフォルト:`{}`)
  - 上記のタグを含めることができ、配置時エンティティに適用
```
give @s axolotl_bucket[bucket_entity_data={NoAI:1,Glowing:1}]
```

#### `instrument`
  - `instrument`タグからの変更
  - ヤギの角で使用する楽器のタイプを保持
  - 楽器のタイプIDを指定
```
give @s minecraft:goat_horn[instrument="ponder_goat_horn"]
```

#### `recipes`
  - `Recipes`タグからの変更
  - 知恵の本を使用時にロックを解除されるレシピのリスト
  - レシピIDのリストで指定
```
give @s minecraft:knowledge_book[minecraft:recipes=["shulker_box","end_crystal"]]
```

#### `lodestone_tracker`(※24w10aで`lodestone_target`から変更)
  - `LodestonePos`、`LodestoneDimension`、`LodestoneTracked`タグからの変更
  - コンパスが指すロードストーンを指定
  - `target`:存在しない場合コンパスが回転する(※24w10aで追加)
    - `pos`
      - x、y、zの整数配列
    - `dimension`
      - ディメンションID
    - `tracked`(デフォルト:`true`)
      - `true`の場合、ターゲット位置のロードストーンが削除されると、コンポーネントが削除される
```
give @s compass[lodestone_tracker={target:{pos:[0,0,0],dimension:"overworld"}}]
```

#### `firework_explosion`
  - `Explosion.Type`、`Explosion.Colors`、`Explosion.FadeColors`、`Explosion.Trail`、`Explosion.Flicker`タグからの変更
  - 花火の星に作成された爆発内容を格納
  - `shape`:形状のタイプを指定
    - `small_ball`:小球
    - `large_ball`:大玉
    - `star`:星形
    - `creeper`:クリーパー型
    - `burst`:破裂
  - `colors`
    - 最初のパーティクルの色のリスト
  - `fade_colors`
    - フェード後のパーティクルの色のリスト
  - `has_trail`(デフォルト:`false`)
    - 流星効果を設定
  - `has_twinkle`(デフォルト:`false`)
    - きらめき効果を設定

```:青と緑から黄と紫に変化する流星の大きい花火の星
give @s firework_star[firework_explosion={shape:"large_ball",colors:[255,65280],fade_colors:[16776960,16711935],has_trail:true}]
```

#### `fireworks`
  - `Fireworks.Explosions`、`Fireworks.Flight`タグからの変更
  - ロケット花火の爆発内容と飛行時間を保存(デフォルト:`{explosions:[],flight_duration:1}`)
  - `explosions`
    - 爆発のリスト
    - `firework_explosion`コンポーネントと同じ形式
  - `flight_duration`
    - ロケット内の火薬の数
```
give @s minecraft:firework_rocket[fireworks={explosions:[{shape:"large_ball",colors:[16699434]},{shape:"large_ball",colors:[16775336],has_trail:true}],flight_duration:2}]
```

#### `profile`
  - `SkullOwner`タグからの変更
  - プレーヤーヘッドに表示されるスキンの制御
  - 設置時プレイヤーヘッドブロックにコピーされる
  - `name`
    - プレイヤープロフィール名
    - `name`のみ指定の場合、対応するプレイヤーIDとスキンデータに変換される
  - `id`(オプション)
    - uuid、プレイヤープロフィールID
  - `properties`(オプション)
    - `name`
      - プロパティ名(例:`textures`)
    - `value`
      - base64でエンコードされたテクスチャデータ
    - `signature`(オプション)
```:羊の頭
give @s player_head[profile={name:"MHF_Sheep"}]
```
```:ビールの頭
give @s player_head[profile={properties:[{name:"textures",value:"eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNzk0Y2E1YmRhMDU2NDQ4OTc5NzUwNTQ1OTAxMDM3MjY0MTM1N2Q5ODdjODI0MWY3MDNiZmFkZjZmM2M1MDNlNCJ9fX0="}]}]
```

#### `note_block_sound`
  - `BlockEntityTag.note_block_sound`タグからの変更
  - 音符ブロックの上に設置されたプレイヤーヘッドによって再生されるサウンドの制御
  - 設置時プレイヤーヘッドブロックにコピーされる
```
give @s player_head[note_block_sound="entity.generic.explode"]
```

#### `base_color`
  - `BlockEntityTag.Base`タグからの変更
  - 盾のベースカラーを保存
  - いずれかの色を選択
    - `white`:白色
    - `orange`:橙色
    - `magenta`:赤紫色
    - `light_blue`:空色
    - `yellow`:黄色
    - `lime`:黄緑色
    - `pink`:桃色
    - `gray`:灰色
    - `light_gray`:薄灰色
    - `cyan`:青緑色
    - `purple`:紫色
    - `blue`:青色
    - `brown`:茶色
    - `green`:緑色
    - `red`:赤色
    - `black`:黒色
```:黄緑色の盾
give @s shield[base_color="lime"]
```

#### `banner_patterns`
  - `BlockEntityTag.Patterns`タグからの変更
  - 旗や盾に適用される追加のパターンの保存
  - `pattern`:[模様ID](https://minecraft.wiki/w/Banner/Patterns)で指定
    - `base`(旧:b)
    - `stripe_bottom`(旧:bs)
    - `stripe_top`(旧:ts)
    - `stripe_left`(旧:ls)
    - `stripe_right`(旧:rs)
    - `stripe_center`(旧:cs)
    - `stripe_middle`(旧:ms)
    - `stripe_downright`(旧:drs)
    - `stripe_downleft`(旧:dls)
    - `small_stripes`(旧:dd)
    - `cross`(旧:cr)
    - `straight_cross`(旧:sc)
    - `diagonal_left`(旧:ld)
    - `diagonal_right`(旧:rud)
    - `diagonal_up_left`(旧:lud)
    - `diagonal_up_right`(旧:rd)
    - `half_vertical`(旧:vh)
    - `half_vertical_right`(旧:vhr)
    - `half_horizontal`(旧:hh)
    - `half_horizontal_bottom`(旧:hhb)
    - `square_bottom_left`(旧:bl)
    - `square_bottom_right`(旧:br)
    - `square_top_left`(旧:tl)
    - `square_top_right`(旧:tr)
    - `triangle_bottom`(旧:bt)
    - `triangle_top`(旧:tt)
    - `triangles_bottom`(旧:bts)
    - `triangles_top`(旧:tts)
    - `circle`(旧:mc)
    - `rhombus`(旧:mr)
    - `border`(旧:bo)
    - `curly_border`(旧:cbo)
    - `bricks`(旧:bri)
    - `gradient`(旧:gra)
    - `gradient_up`(旧:gru)
    - `creeper`(旧:cre)
    - `skull`(旧:sku)
    - `flower`(旧:flo)
    - `mojang`(旧:moj)
    - `globe`(旧:glb)
    - `piglin`(旧:pig)
    - `flow`(渦の模様)
    - `guster`(ブリーズの模様)
  - `color`
    - `base_color`コンポーネントと同じ
```
give @s shield[banner_patterns=[{pattern:"gradient",color:"light_blue"},{pattern:"guster",color:"gray"}]]
```

#### `pot_decorations`
  - `BlockEntityTag.sherds`タグからの変更
  - 装飾ポットの両側に適用された破片を保持(デフォルト:`["brick","brick","brick","brick"]`)
  - 設置時装飾ポットブロックにコピーされる
```
give @s decorated_pot[pot_decorations=["arms_up_pottery_sherd","angler_pottery_sherd","danger_pottery_sherd","shelter_pottery_sherd"]]
```

#### `container`
  - `BlockEntityTag.Items`タグからの変更
  - シュルカーブロックの中身を保持(※24w10aで全てのコンテナブロックに使用)
  - 設置時ブロックにコピーされる(デフォルト:`[]`)
  - `slot`
    - コンテナ内のスロット位置を指定
  - `item`
    - アイテムスタックの指定
```
give @s chest[container=[{slot:0,item:{id:"diamond",count:10}},{slot:7,item:{id:"diamond_pickaxe",components:{"unbreakable":{}}}}]]
```

#### `bees`
  - `BlockEntityTag.Bees`タグからの変更
  - ミツバチをミツバチの巣または養蜂箱の中に保持
  - 配置時ミツバチの巣または養蜂箱にコピーされる
  - `entity_data`
    - id:エンティティID
    - 残りのタグはスポーン時ミツバチに適応される
  - `ticks_in_hive`
    - 巣の中にいる時間(tick)
  - `min_ticks_in_hive`
    - 巣の中にとどまる最低時間(tick)
```
give @s beehive[bees=[{entity_data:{id:"bee",NoAI:true},ticks_in_hive:10,min_ticks_in_hive:3}]]
```

#### `lock`
  - `BlockEntityTag.Lock`タグからの変更
  - コンテナブロックのロック状態を保持
    - 開くには、同じ値のカスタム名を持つアイテムを使用
```
give @s chest[lock="key"]
```

#### `container_loot`
  - `BlockEntityTag.LootTable`、`BlockEntityTag.LootTableSeed`タグからの変更
  - コンテナブロックのルートテーブルを保持
  - `loot_table`
    - ルートテーブルのIDを指定
  - `seed`
    - ルートテーブルのseed値を指定
    - 0または指定しない場合ランダムに生成される
```
give @s chest[container_loot={loot_table:"minecraft:chests/spawn_bonus_chest"}]
```

#### `block_entity_data`
  - `BlockEntityTag`タグからの変更
  - ブロックエンティティを設置する時に適用するNBTデータを保存
  - 専用のコンポーネントに移動されたブロックエンティティデータはこのタグに使用できない
  - コマンドブロック、書見台、看板、スポナーに対してのみ機能する
  - ブロックエンティティタイプのIDを指定する必要がある
  - 追加のデータは設置時ブロックにコピーされる
```
give @s lectern[block_entity_data={Book:{count:1,id:"writable_book"},Page:0,id:"lectern"}]
```

#### `block_state`
  - `BlockStateTag`タグからの変更
  - 設置時ブロックに適応するブロック状態のプロパティを保持
```
give @s turtle_egg[block_state={eggs:"4"}]
```

#### `enchantment_glint_override`
  - アイテムのエンチャントの輝きの表示設定
  - `true`の場合エンチャントの輝きを表示する
  - `false`の場合エンチャントの輝きを非表示にする
```
give @s apple[enchantment_glint_override=true]
```

### Item Stack Format(アイテムスタックフォーマット)
- コンポーネントによる形式の変更に伴い、ディスク上およびデータパック内のアイテムスタックの構造が一貫性を保つために更新される
- 以前の`id`(string)と`Count`(byte)は、`id`(名前空間付きID)と`Count`(int)に置き換えられる
  - この形式は、進捗アイコン・チャットコンポーネントのホバーイベントのアイテム・製錬レシピの結果にも適用される
- `count`は省略でき、その場合はデフォルトの1が使用される
- `tag`は削除され、その他のNBTデータは`custom_data`コンポーネントに保存される
- アイテムにある全てのコンポーネントがコンポーネントフィールドに保存される
  - フォーマット:コンポーネントIDからコンポーネント値への紐づけ(コンポーネントIDによって異なる)
    - 例: `{..., components: {'minecraft:damage': 12}}`
    - 頭に`!`が付いたコンポーネント(例: `"!minecraft:damage": {}`)により、コンポーネントを項目から削除できる
  - デフォルト値のコンポーネントは保存されない
- アイテムスタック形式で空のスタックを表現しなくなる
  - 代わりに、それをサポートする場所では省略できる
  - スタックリスト(リビングエンティティの`HandItem`など)で、空のスタックを表す場合には、`{}`(空の値)が使用される

### Other Format
- 効果付き矢は適用されたポーション効果を直接保存しないよう変更
  - 代わりに保持されている`item`から取得される
- エリアエフェクトクラウドは`potion_contents`コンポーネントと同じ形式で`potion_contents`タグに保存する
  - `Potion`から`potion_contents.potion`に変更
  - `Color`から`potion_contents.custom_color`に変更
  - `effects`から`potion_contents.custom_effects`に変更
- 旗には`banner_patterns`コンポーネントと同じ形式で`patterns`タグに保存する
  - `Patterns[].Pattern`から`Patterns[].pattern`に変更
  - `Patterns[].Color`から`Patterns[].color`に変更
- 蜂の巣の形式変更
  - `Bees[].EntityData`から`bees[].entity_data`に変更
  - `Bees[].TicksInHive`から`bees[].ticks_in_hive`に変更
  - `Bees[].MinjobTicks`から`bees[].min_ticks_in_hive`に変更
  - `FlowerPos`から`flowers_pos`に変更
- 村人の取引で`"minecraft:damage":0`に設定することで、耐久値が減っていないアイテムのみ受け入れるように設定できる
  - `ignoreTags`タグを削除
  - デフォルトではコンポーネントが指定されず、任意の項目が受け入れられる
- 宝物庫の`key_item`を削除可能
　- 削除した場合、宝物庫は開けない

### Commands
- `playsound`コマンドはミキサーとプレイヤーを指定せずに実行できるように変更
指定しない場合は、`master`と`@s`を使用する
- `give`、`item`、`loot`、`clear`コマンドなどのアイテム構文の更新
    - コンポーネントと値を`=`で指定できる
    (例:`wood_pickaxe[damage=23]`)
    - コンポーネントは`,`で区切り複数指定できる
    (例:`netherite_hoe[damage=5,repair_cost=2]`)
- コンポーネントタイプは自動補間(候補表示)されるが、値は自動補間されない
- コンポーネントに対して不適切な値が指定されている場合、コマンドは解析に失敗する(例:`/give @s wood_pickaxe[damage=-34]`は無効)
- アイテムの指定(`/clear`内)で、コンポーネントとカスタムデータの指定の仕様※24w12aで追加更新される
  - 指定された全てのコンポーネントがターゲットアイテムの項目に存在し、値を一致させる必要がある
  - デフォルト値のあるコンポーネントが指定されない場合、ターゲットアイテムに存在すると想定される
    - `/clear @s diamond_pickaxe[damage=0]`は耐久値の減っていないダイヤモンドのツルハシのみに一致する
    - `/clear @s diamond_pickaxe`はダメージに関係なく、全てのダイヤモンドのツルハシと一致する
- `attribute`コマンドの修飾子操作の名前変更
`add`から`add_value`に変更
`multiply_base`から`add_multiplied_base`に変更
`multiply`から`add_multiplied_total`に変更

### Loot Tables
- ルートテーブルの`entry`内にルートテーブルを作成できるように変更
`entry`の`loot_table`で他からルートテーブルを参照する以外に、直接ルートテーブルを記述できるようになる
    - `value`
        - 名前空間のID
        別のルートテーブルを参照できる
        - ルートテーブル
        記述したルートテーブルを使用する

<details><summary>インラインされたルートテーブルの例</summary>

```json:
{
    "pools": [
        {
            "rolls": 2,
            "entries": [
                {
                    "type": "minecraft:item",
                    "name": "minecraft:diamond"
                },
                {
                    "type": "minecraft:loot_table",
                    "value":{
                        "pools": [
                            {
                                "rolls": 1,
                                "entries": [
                                    {
                                        "type": "minecraft:item",
                                        "name": "minecraft:gold_ingot"
                                    },
                                    {
                                        "type": "minecraft:item",
                                        "name": "minecraft:emerald"
                                    }
                                ]
                            }
                        ]
                    }
                }
            ]
        }
    ]
}
```
</details>

- `minecraft:set_components`追加
  - 指定されたコンポーネントを追加、置換する
  - `conditions`:条件のリスト(デフォルト:`[]`)
    - 機能を適用する前に確認する条件
  - `conponents`: コンポーネントIDとコンポーネント値を指定
    - `!`が付いたコンポーネント(例: `"!minecraft:damage": {}`)により、コンポーネントを削除できる

<details><summary>can_breakが付いたツールで壊したときレバーにcan_place_onをセットする例</summary>

```json:
{
	"type": "minecraft:block",
	"pools": [
		{
			"rolls": 1,
			"bonus_rolls": 0,
			"entries": [
				{
					"type": "minecraft:item",
					"name": "minecraft:lever",
					"functions": [
						{
							"function": "minecraft:set_components",
							"components": {
								"minecraft:can_place_on": {
									"blocks": "minecraft:gold_block"
								}
							}
						}
					],
					"conditions": [
						{
							"condition": "minecraft:match_tool",
							"predicate": {
								"components": {
									"minecraft:can_break": {
										"blocks": "minecraft:lever"
									}
								}
							}
						}
					]
				},
				{
					"type": "minecraft:item",
					"name": "minecraft:lever"
				}
			]
		}
	],
	"random_sequence": "minecraft:blocks/lever"
}
```
</details>

- `minecraft:copy_components`追加
  - 指定されたソースからアイテムにコンポーネントをコピーする
  - 壊したブロックエンティティのみ指定可能
  - `minecraft:copy_name`と`minecraft:copy_nbt`の代わりに使用される
  - `conditions`: 条件のリスト(デフォルト:`[]`)
    - 機能を適用する前に確認する条件
  - `source`: 取得元のソースのタイプ
    - `"block_entity"`のみ指定可能
  - `conponents`: コピーするコンポーネントIDのリスト

<details><summary>デフォルトのチェストのルートテーブル（カスタムネームを保持する）</summary>

```json:
{
    "type": "minecraft:block",
    "pools": [
        {
            "bonus_rolls": 0.0,
            "conditions": [
                {
                    "condition": "minecraft:survives_explosion"
                }
            ],
            "entries": [
                {
                    "type": "minecraft:item",
                    "functions": [
                        {
                            "function": "minecraft:copy_components",
                            "include": [
                                "minecraft:custom_name"
                            ],
                            "source": "block_entity"
                        }
                    ],
                    "name": "minecraft:chest"
                }
            ],
            "rolls": 1.0
        }
    ],
    "random_sequence": "minecraft:blocks/chest"
}
```
</details>

- `minecraft:set_nbt`と`minecraft:copy_nbt`が`minecraft:set_custom_data`と`minecraft:copy_custom_data`に置き換えられる
  - これらはアイテムの`custom_data`コンポーネントに適用される
- `minecraft:set_attributes`の更新
  - `modifiers`の`slot`で`any`、`armor`、`hand`を指定できるよう変更
  - `modifiers`の`operation`の値の名前を変更
    - `addition`から`add_value`に変更
    - `multiply_base`から`add_multiplied_base`に変更
    - `multiply_total`から`add_multiplied_total`に変更

### Enchantments
- 無限、拡散、貫通などの発射武器エンチャントがクロスボウと弓の両方で機能するように変更

### Item Predicate Formats in Loot Tables & Advancements
ルートテーブルと実績の記述形式が更新される
- アイテムの条件の更新
  - `tag`の削除
  - `items`は単一だけでなく、ハッシュタグ付きアイテムタグやアイテムのリストを指定できるように変更
  - `potion`は`potions`に変更され、単一だけでなく、ハッシュタグ付きポーションタグやポーションのリストを指定できるように変更
  - `nbt`の指定が`predicates`の`custom_data`に変更され、`custom_data`コンポーネントと一致する
  - 新しく追加された`components`は、アイテムのコンポーネントと正確に一致する必要がある(※24w12aで部分一致の方法追加)
    - 指定されたコンポーネントは正確に一致する必要があるが、アイテムには追加のコンポーネントが含まれる場合もある
    - デフォルトのコンポーネントは指定しない場合、項目に存在すると想定される
    例: `"components":{"damage":0}`は耐久値の減っていないアイテムのみに一致する
- ブロックの条件の更新
  - `tag`の削除
  - `blocks`は単一だけでなく、ハッシュタグ付きアイテムタグやアイテムのリストを指定できるように変更
- 液体の条件の更新
  - `tag`の削除
  - `fluid`は`fluids`に変更され、単一だけでなく、ハッシュタグ付き液体タグや液体のリストを指定できるように変更
- エンティティの条件の更新
  - `type`は単一だけでなく、ハッシュタグ付きアイテムタグやアイテムのリストを指定できるように変更
- 場所の条件の更新
  - `biome`は`biomes`に変更され、単一だけでなく、ハッシュタグ付きバイオームタグやバイオームのリストを指定できるように変更
  - `structure`は`structures`に変更され、単一だけでなく、ハッシュタグ付き構造タグや構造のリストを指定できるように変更

### Damage Types
- `bypasses_wolf_armor`
オオカミの鎧で吸収できないダメージタイプ


## 24w10a(datapack:34)
### Recipes
- `crafting_shaped`、`crafting_shapeless`、`stonecutting`、`smithing_transform`タイプのレシピの結果アイテムがアイテムコンポーネントを設定できるよう変更

<details><summary>作業台のコンポーネントを設定したレシピ例</summary>

```json:
{
    "type": "minecraft:crafting_shaped",
	"pattern": [
		"#"
	],
	"key": {
		"#": {
			"item": "minecraft:diamond"
		}
	},
	"result": {
		"id": "minecraft:enchanted_golden_apple",
		"count": 1,
		"components": {
			"custom_name": "カスタムアイテム"
		}
	}
}
```
</details>

- `smelting`、`blasting`、`smoking`、`campfire_cooking`のレシピタイプの結果フィールドが`id`と`components`を含むアイテム定義に変更(`count`は設定不可)

<details><summary>かまどで腐った肉をステーキにするレシピ例</summary>

```json:
{
	"type": "minecraft:smelting",
	"ingredient": {
		"item": "minecraft:rotten_flesh"
	},
	"result": {
		"id": "minecraft:cooked_beef",
		"components": {
			"minecraft:custom_name": "腐ったステーキ"
		}
	}
}
```
</details>

### NBT
- 狼のバリエーションを追加
  - `variant`:スポーンするバイオームによって決まる
    - `pale`:タイガ
    - `woods`:森林
    - `ashen`:雪のタイガ
    - `black`:マツの原生林
    - `chestnut`:トウヒの原生林
    - `rusty`:まばらなジャングル
    - `spotted`:サバンナの高原
    - `striped`:森のある荒野
    - `snowy`:山岳

### Predicates
- エンティティのサブ条件に`slots`タグを追加
任意のエンティティの単一、複数のスロットをチェックできる
- `slots`は`item`コマンドと同じタグが含まれる
- スロット範囲の場合、1つでも一致する項目があれば一致する

<details><summary>プレイヤーが最低1スタック以上の土を持っている場合に一致する</summary>

```json:
{
	"condition": "entity_properties",
	"entity": "this",
	"predicate": {
		"type": "player",
		"slots": {
			"container.*": {
				"items": "dirt",
				"count": 64
			}
		}
	}
}
```
</details>

### Slot Names
- `item`コマンドやエンティティの`predicate`で使用するスロット引数の追加
- 範囲スロットは`item`コマンドでは使えない(`execute`サブコマンドの`items`では可能)
- 新しいスロット引数:
  - `container.*`
    - `container.0`から`container.53`の範囲
  - `hotbar.*`
    - `hotbar.0`から`hotbar.8`の範囲
  - `inventory.*`
    - `inventory.0`から`inventory.26`の範囲
  - `enderchest.*`
    - `enderchest.0`から`enderchest.26`の範囲
  - `villager.*`
    - `villager.0`から`villager.7`の範囲
  - `horse.*`
    - `horse.0`から`horse.14`の範囲
  - `weapon.*`
    - `weapon.mainhand`と`weapon.offhand`を含む
  - `armor.*`
    - `armor.head`、`armor.chest`、`armor.legs`、`armor.feed`、`armor.body`を含む
  - `player.cursor`
    - プレイヤーがカーソルに持っているアイテム
    - クリエイティブモードでは使用できない
  - `player.crafting.0`-`player.crafting.3`、`player.crafting.*`
    - プレイヤーのインベントリのクラフトスロット
    - 作業台などの他の画面のスロットは含まない

### Commands
- `execute`のサブコマンド`if|unless`に`items`を追加
- `if|unless items <source> <slots> <item_predicate>`コマンドを使用してアイテムをカウントできる場合に実行
- `items`:
  - `<source>`(`item`コマンドで使用されるものと同じ)
    - `block <x> <y> <z>`
    - `entity <target>`
  - `<slots>`
    - 単一スロット(`container.0`、`player.cursor`など)
    - 範囲スロット(`container.*`、`armor.*`など)
  - `<item_predicate>`(`clear`コマンドのアイテム条件と同じ)
```:ホットバーにある耐久値の減っていないダイヤのツルハシの個数を返す
execute if items entity @s hotbar.* diamond_pickaxe[damage=0]
```

### Banner Patterns
- バナーパターンがデータパックから動的レジストリにロードされるように変更(`data/<namespace>/banner_pattern/<id>`)
  - `asset_id`:読み込まれるテクスチャの位置を決める
  例:`custom:pattern`の場合`assets/custom/textures/entity/banner/pattern.png`と`assets/custom/textures/entity/shield/pattern.png`に決められる
  - `translation_key`:翻訳キーの接頭辞
  例:`block.minecraft.banner.custom.pattern`の場合`block.minecraft.banner.custom.pattern.<dye color>`に決められる

### Item Stack Components
- 一部のアイテムコンポーネントで単純な書き方ができるよう変更(保存時は常に完全な形式で保存される)
  - `profile`:プレイヤー名の文字列として定義
    - 例:`profile="jeb_"`
  - `dyed_color`:RGBカラーの整数として定義
    - 例:`dyed_color=65535`
  - `attribute_modifiers`:修飾子を直接リストで定義
    - 例:`attribute_modifiers=[{type:"generic.jump_strength",slot:feet,uuid:[0,0,0,1],name:"height jump",amount:1.0,operation:"add_multiplied_base"}]`
  - `potion_contents`:単一のポーションIDとして定義
    - 例:`potion_contents="leaping"`
  - `enchantments`、`stored_enchantments`:エンチャント名とレベルの定義
    - 例:`enchantments={sharpness:1,unbreaking:1}`
- `container`
  - シュルカーボックスだけでなく、全てのコンテナブロックに使用可能
- `lodestone_target`の名前を`lodestone_tracker`に変更
- `lore`、`fireworks`のリストのエントリ最大数を256に引き上げ

### Other
- アイテムスタックの`count`の値が1の場合も常にシリアライズされる(NBTの`{count:1}`をチェックできる)
- プレイヤーヘッドの`custom_name`が保存されるように変更し、壊れた後もアイテムにコピーされる
- プレイヤーヘッドブロックの`SkullOwner`と`ExtraType`タグが、`profile`コンポーネントと同じ形式に置き換えられる



## 24w11a(datapack:35)
### Commands
- 単一のアイテムのみを含むエンティティ(アイテム、額縁、アイテムディスプレイなど)に、`contents`という新しいスロット名でアクセスできる
```:額縁のアイテムをリンゴにする
item replace entity @e[type=item_frame] contents with apple
```

### Predicates
- アイテム条件の一部タグがオプションの`predicates`に移動
- 書き方はアイテムコンポーネントに似ている
  - `enchantments`
    - `minecraft:enchantments`に移動
  - `stored_enchantments`
    - `minecraft:stored_enchantments`に移動
  - `potions`
    - `minecraft:potion_contents`に移動
  - `custom_data`
    - `minecraft:custom_data`に移動

<details><summary>昔と今の書き方の違い</summary>

```json:昔の書き方
"item": {
    "enchantments": [
        {
            "enchantment": "minecraft:silk_touch",
            "levels": {
                "min": 1
            }
        }
    ]
}
```
```json:新しい書き方
"item": {
    "predicates": {
        "minecraft:enchantments": [
            {
                "enchantment": "silk_touch",
                "levels": {
                    "min": 1
                }
            }
        ]
    }
}
```
</details>

- `durability`が`minecraft:damage`条件内に拡張
  - `damage`コンポーネントを持つ全てのアイテムに機能する
  - `damage`コンポーネントを持たないアイテムは必ず一致しない
  - `minecraft:damage`:
    - `damage`:アイテムの消費耐久度
    - `durability`:アイテムの残り耐久度

<details><summary>残り耐久度1の石の斧を持つエンティティ</summary>

```json:
{
	"condition": "entity_properties",
	"entity": "this",
	"predicate": {
		"slots": {
			"container.*": {
				"items": "stone_axe",
				"predicates": {
					"minecraft:damage": {
						"durability": 1
					}
				}
			}
		}
	}
}
```
</details>

### Loot Function
#### New Function
- `set_fireworks`
アイテムの`fireworks`コンポーネントを変更できる
  - `conditions`:関数を適用するかどうかの条件
  - `flight_duration`:飛行時間(火薬の数)
  - `explosions`(※プレリリース2でオプションになったが`value`は必須)
    - `value`:`fireworks`コンポーネントの`explosion`と同じ書き方
    - `mode`:爆発リスト順や置き換えを指定
      - `replace_all`:爆発リストを完全に置き換え
      - `replace_section`:爆発リストの置き換える範囲を指定
        - `offset`:置き換える範囲の開始位置(省略した場合は`0`で一番最初)
        - `size`:置き換える範囲(省略した場合は`explotions`のリスト数)
      - `insert`:爆発を挿入位置を指定
        - `offset`:爆発の挿入位置(省略した場合は`0`で一番最初)
      - `append`:リストの最後に爆発を追加

<details><summary>花火のデータを書き換えるアイテムモディファイア</summary>

```json:
{
	"function": "set_fireworks",
	"explosions": {
		"values": [
			{
				"shape": "large_ball",
				"colors": [
					255
				],
    			"has_trail": true
			}
		],
		"mode": "replace_all"
	},
	"flight_duration": 2
}
```
</details>

- `set_firework_explosion`
アイテムの`firework_explosion`コンポーネントを変更できる
  - `conditions`:関数を適用するかどうかの条件
  - `shape`:爆発の形状
    - 省略した場合元の形状を保持(コンポーネントが無い場合`small_ball`)
  - `colors`:RGB値
    - 最初のパーティクルの色を置き換える
    - 省略した場合元の色を保持(コンポーネントが無い場合`[]`)
  - `fade_colors`:RGB値
    - 変化後のパーティクルの色を置き換える
    - 省略した場合元の色を保持(コンポーネントが無い場合`[]`)
  - `trail`:ブール値
    - 爆発に軌跡を残すか
    - 省略した場合元の`has_trail`の値を保持(コンポーネントが無い場合`false`)
  - `twinkle`:ブール値
    - 爆発にきらめきをつけるか
    - 省略した場合元の`has_twinkle`の値を保持(コンポーネントが無い場合`false`)
```json:花火の星のデータを書き換えるアイテムモディファイア
{
	"function": "set_firework_explosion",
	"shape": "large_ball",
	"colors": [
		255
	],
	"trail": true
}
```
- `set_book_cover`
`written_book_content`コンポーネントの`pages`以外の項目を設定する関数
  - `conditions`:関数を適用するかどうかの条件
  - `title`:設定するタイトル
    - `written_book_content`コンポーネントの`title`と同じ
    - 省略した場合元のタイトルを保持(コンポーネントが無い場合空の文字列)
  - `author`:設定する作成者
    - 省略した場合元の作成者を保持 (コンポーネントが無い場合空の文字列)
  - `generation`:設定するコピーされた世代(0~3)
    - 省略した場合元の世代を保持 (コンポーネントが無い場合`0`)
- `set_writable_book_pages`
`written_book_content`コンポーネントの`pages`の項目を設定する関数
  - `conditions`:関数を適用するかどうかの条件
  - `pages`:ページに適応する文字の指定
    - `writable_book_content`コンポーネントの`pages`と同じ
  - `mode`:リスト順や置き換えを指定
    - `replace_all`:本の内容を完全に置き換える
    - `replace_section`:本の置き換える範囲を指定
      - `offset`:置き換える範囲の開始位置(省略した場合は`0`で一番最初)
      - `size`:置き換える範囲(省略した場合は`pages`のリスト数)
    - `insert`:ページの挿入位置を指定
      - `offset`:ページの挿入位置(省略した場合は`0`で一番最初)
    - `append`:本の最後にページを追加
- `set_written_book_pages`
  - `written_book_content`コンポーネントを設定する関数
  - `set_writable_book_content`と同じ形式だが、`pages`は`writable_book_content`コンポーネントと同じ形式(※24w12aでJSON文字列からJSONオブジェクトに変更)

<details><summary>set_written_book_pagesの例</summary>

```json:
{
	"function": "set_written_book_pages",
	"pages": [
        {
			"text": "1ページ目\n2行目"
		},
        [
            {
			    "text": "2ページ目"
            },
            {
                "text": "\n2行目赤色","color": "red"
            }
        ]
	],
	"mode": "replace_all"
}
```
</details>



## 24w12a(datapack:36)
### Advancements
- `crafter_recipe_crafted`追加
  - 自動作業台が正常に作成されたアイテムを排出したときにトリガーされる
  - `player`:近くにいるプレイヤーの条件
  - `recipe_id`:作成中のレシピのIDの条件
  - `ingredients`:作成中のレシピを構成する材料の条件のリスト

- `fall_after_explosion`追加
  - プレイヤーが爆発または風の爆発によって上に吹き飛ばされた後、落下し始めたときにトリガーされる
  - `player`:落下するプレイヤーの条件
  - `start_position`:プレーヤーが爆発または風の爆発を受けた時にいる位置の条件
  - `distance`:プレイヤーが`start_position`からどのくらい離れているかの条件
  - `cause`:爆発または風の爆発を引き起こしたエンティティの条件

### Commands
- `particle`コマンドの`entity_effect`がコマンド生成時にcolor引数を指定
  - `/particle entity_effect <r> <g> <b> <a>`(※プレリリース1で書式変更)
  - RGBAを表す0.0~1.0の範囲のfloat値
```
particle entity_effect{color:[1f,0f,0f,0.3f]} ~ ~1 ~
```
- `execute if|unless items`、`clear`コマンドで使用するアイテム構文の拡張
  - 一般的な構文`<type>[カンマで区切った<test>リスト]`
  - `<type>`に入るもの
    - アイテムID
    - `#`が付いたアイテムタグのID
    - 全てのアイテムに一致する`*`
  - `<test>`に入る形式
    - `<component_id>=<value>`
      - コンポーネントの値に一致するアイテム
      - `<value>`はSNBT形式でのコンポーネント値の表現
    - `<component_id>`
    - `<predicate_id>~<value>`
      - `<value>`は、アイテムのSNBT形式の表現(それ以外の点は進捗やルートテーブルのJSONファイルの形式)
  - スタックサイズを一致させる`minecraft:count`を使用可能
    - `count=<positive int>`:スタックサイズが指定された値と等しい場合一致
    - `count~<int range>`:スタックサイズが指定された範囲内にある場合一致
      - 例:`*[count~{max:2}]`はカウントが2以下に一致する
  - `<test>`要素は先頭に`!`を付けることで無効にできる
    - 例:`*[!count=1]`はカウントが1以外のスタックと一致する
  - `<test>`要素は`|`で連結でき、複数の選択肢をチェックする
    - 例:`*[!damage|damage=0]`はダメージコンポーネントが無いか、ダメージが0のアイテムに一致する
  - 古いカスタムデータの構文(`{}`)は削除され、`custom_data`が使用されるようになる
    - 例:`/clear @s stick{a:2}`は`/clear @s stick[custom_data~{a:2}]`に変更
```:カスタムという名前でエンチャントオーラ付きの耐久値が最低100残っているアイテムに一致
clear @s *[custom_name="カスタム",enchantment_glint_override,damage~{durability:{min:100}}]
```
<!-- https://ja.minecraft.wiki/w/%E9%80%B2%E6%8D%97/%E6%9D%A1%E4%BB%B6/item -->
#### Inline Loot Values
- `loot`、`item`、`execute if predicate`コマンドの引数に、インライン定義を受け入れるよう変更(データパックでJSONファイルを用意しなくても使用可能になった)
```:インラインされたルートテーブル(ダイヤか金かエメラルドを合計2個与える)
loot give @s loot {type:fishing,pools:[{rolls:2,entries:[{type:item,name:diamond},{type:item,name:gold_ingot},{type:item,name:emerald}]}]}
```
```:インラインされたアイテムモディファイア(メインハンドに持ったロケット花火を変更)
item modify entity @p weapon.mainhand {function:set_fireworks,explosions:{values:[{shape:large_ball,colors:[255],has_trail:true}],mode:replace_all},flight_duration:2}
```
```:インラインされたプレディケート(実行者がアーマースタンドを見ている時に成功)
execute if predicate {condition:entity_properties,entity:this,predicate:{type_specific:{type:player,looking_at:{type:armor_stand}}}}
```

### Loot Tables
- ストレージ用の番号プロバイダーを追加
  - コマンドの`strage`内の値にアクセスできる
```:ストレージ_:_のcountの数だけダイヤを与える
loot give @s loot {pools:[{rolls:1,entries:[{type:item,name:diamond,functions:[{function:set_count,count:{type:storage,storage:"_:_",path:count}}]}]}]}
```

- `set_lore`追加
  - `replace`を削除
  - `set_fireworks`や`set_written_book_pages`などにある`mode`が追加

- `set_written_book_pages`追加
  - `pages`はJSON文字列ではなくJSONオブジェクトに変更

- `toggle_tooltips`追加
  - コンポーネントのツールチップの表示を変更可能
  - 他の値を変更せず、`show_in_tooltip`だけを設定することで機能する
  - `toggles`
    - サポートされているコンポーネントのブール値を指定
  - サポートされているコンポーネント
    - `trim`、`dyed_color`、`enchantments`、`stored_enchantments`、`unbreakable`、`can_break`、`can_place_on`、`attribute_modifiers`
```:メインハンドのエンチャントされた本のエンチャント情報を非表示にする
item modify entity @s weapon.mainhand {function:toggle_tooltips,toggles:{stored_enchantments:false}}
```
- ネストされたリストは`function`で使用できなくなる

### Predicate
#### Item Sub-Predicate
  - 述語の`custom_data`が文字列(既存の形式)として書かれたSNBTデータと非フラット化タグの両方受け入れるように変更
    - `/clear @s *[custom_data~{a:1}]`と`/clear @s *[custom_data~"{a:1}"]`が同じ
#### Entity Sub-Predicate
  - `wolf`(狼)に`variant`を追加
    - `variant`:一致する狼の種類を指定
  - `cat`、`frog`、`painting`、`wolf`
    - `variant`が単一エントリ、エントリのリスト、タグを受け入れるよう変更

### Item Stack Components（コンポーネント）
#### `food`
- 食べ物のように動作させる設定(食べることが可能)
- 食品タイプの暗黙的なデフォルト値がある
- `nutrition`:0以上の整数
  - 食べた時の満腹度回復の量
- `saturation`:float(プレリリース1で`saturation_modifier`から変更)
  - 食べた時の隠し満腹度回復の量
- `is_meat`:ブール値
  - `true`の場合オオカミに餌として与えられる(デフォルト:`false`)
- `can_always_eat`:ブール値
  - `true`の場合お腹が空いていなくても食べられる(デフォルト:`false`)
- `eat_seconds`:float
  - 食べるのにかかる秒数(デフォルト:`1.6`)
- `effects`
  - 食べた時に適用する効果のリスト(デフォルト:`[]`)
  - `effect`
    - `potion_contents`コンポーネントの`custom_effects`と同じ形式
  - `probability`:0~1のfloat
    - エフェクトが適用される確率(デフォルト:`1`)
```
give @s bone[food={nutrition:5,saturation:0.5,is_meat:true}]
```

#### `max_stack_size`
- アイテムの最大スタック個数を指定(プレリリース1で耐久値のあるアイテムに適用不可)
- 1~99の整数で指定
- アイテムによって暗黙のデフォルト値がある(デフォルト:`1`,`16`,`64`)
```
give @s apple[max_stack_size=99]
```

#### `max_damage`
- アイテムの最大耐久値を制御
- `max_stack_size`が1の時のみ指定可能
- 正の整数で指定
```
give @s iron_axe[max_damage=1000]
```

#### `fire_resistant`
- 設定した場合、アイテムが火の中で燃えなくなる
- ネザライトなどの耐火性アイテムはデフォルトで含む
```
give @s apple[fire_resistant={}]
```

#### `rarity`
- アイテムの希少度を制御(アイテム名のデフォルト色を制御)
- エンチャントされたアイテムは希少度が一つ上がる
  - `common`(デフォルト)
    - 白い名前
  - `uncommon`
    - 黄色の名前
  - `rare`
    - 水色の名前
  - `epic`
    - 薄紫の名前
- 黄金のリンゴなどの特別なアイテムには暗黙のデフォルト値がある
```
give @s apple[rarity=rare]
```

#### `tool`
- ツールとしてアイテムの動作を制御
- `rules`:特定のブロックの採掘速度やドロップの制御
  - `blocks`
    - 単一のブロック、ブロックのリスト、`#`が付いたブロックタグで指定
  - `speed`:float(オプション)
    - blocksで指定したブロックの採掘速度
  - `correct_for_drops`:ブール値(オプション)
    - ブロックにとって正しいツールかを制御
    - `true`の場合、Loot Table内のブロックにとって適切なツールとなる
- `default_mining_speed`:float
  - `rules`に一致しない場合の採掘速度の指定(デフォルト:`1.0`)
- `damage_per_block`:0以上の整数
  - ブロック採掘時の耐久値の減少量
```:木材を速く採掘できる棒
give @s stick[tool={rules:[{blocks:"#logs",speed:10.0},{blocks:"#planks",speed:20.0}]}]
```

#### `hide_tooltip`
- 設定した場合、アイテムのアイテム名を含む全てのツールチップを非表示にする
```:
give @s apple[hide_tooltip={}]
```

### Block Tags
- `incorrect_for_wooden_tool`、`incorrect_for_gold_tool`、`incorrect_for_stone_tool`、`incorrect_for_iron_tool`、`incorrect_for_diamond_tool`、`incorrect_for_netherite_tool`を追加
  - ツール毎の`needs_diamond_tool`、`needs_iron_tool`、`and needs_stone_tool`タグを組み合わせたもの

### Entity Types
- `sensitive_to_smite`の追加
  - アンデット特攻のエンチャントの効果を受けるエンティティ

### Item Tags
- `meat`を追加
- `axolotl_tempt_items`を`axolotl_food`に変更
- 対応するMobにアイテムを与えたり、誘惑したりできるかを制御するタグの追加
  - `piglin_food`、`fox_food`、`cow_food`、`goat_food`、`sheep_food`、`wolf_food`、`cat_food`、`horse_food`、`horse_tempt_items`、`camel_food`、`armadillo_food`、`bee_food`、`chicken_food`、`frog_food`、`hoglin_food`、`llama_food`、`llama_tempt_items`、`ocelot_food`、`panda_food`、`pig_food`、`rabbit_food`、`strider_food`、`strider_tempt_items`、`turtle_food`、`parrot_food`、`parrot_poisonous_food`



## 24w13a(datapack:37)
### Loot Table
- ルートテーブルの`type`に`equipment`を追加
  - `this_entity`:装備を与えられようとしているMob
  - `origin`:モブの位置
- オプションの`equipment_loot_table`(プレリリース1で`equipment`に変更)を、モンスタースポナーの`SpawnPotentials`、トライアルスポナー(1.21)の`spawn_potentials`のスポーンデータに追加
  - 存在する場合、指定されたルートテーブルから抽選されたアイテムがスポーンするMobに装備される
  - `loot_table`
    - 装備を生成するために使用されるルートテーブル 
  - `slot_drop_chances`:オプション
    - 装備スロットごとのドロップ率の指定
    - リストの代わりに単一の値を指定可能
      - 例:`slot_drop_chances:0.0f`は全てのスロットのドロップ率を0%にする
```:ランダムなチェーン系の装備をしたハスクをスポーンするスポナー
setblock ~ ~ ~ spawner{SpawnPotentials:[{weight:1,data:{entity:{id:"husk"},equipment:{loot_table:"gameplay/hero_of_the_village/armorer_gift",slot_drop_chances:{head:0.0f,chest:0.0f,legs:0.0f,feet:0.0f}}}}]}
```

### Item Stack Components
#### `item_name`
- デフォルトのアイテム名を置き換える
- `custom_name`との違い
  - `item_name`は金床で変更または削除できない
  - `item_name`はプレイヤーに表示されるとき文字のスタイルが斜体に設定されない
  - `item_name`はラベルが表示されない(旗や額縁に入れたアイテムの名前など)
```:デフォルトの名前が硬いリンゴ
give @s apple[item_name="硬いリンゴ"]
```

#### `ominous_bottle_amplifier`
- 不吉な瓶の不吉な予感のエフェクトのレベルを制御
- 0~4の整数で指定
```不吉な瓶(1.21で追加)の不吉な予感レベル3
give @s ominous_bottle[ominous_bottle_amplifier=2]
```

### Loot Functions
- `components`を削除し、`copy_components`を追加
  - `include`:(オプション)
    - コピーするデータコンポーネントのリスト
    - 暗黙的に含まれているコンポーネントも除外していない場合コピーされる
    - 省略した場合、存在するすべてのコンポーネントが含まれる
  - `exclude`:(オプション)
    - コピーから除外するデータコンポーネントのリスト
    - 省略した場合、デフォルトは空になる
- `set_name`に`target`を追加
  - `custom_name`か`item_name`のどちらの名前を設定するかの指定
  - `target`:(オプション)
    - `custom_name`:`custom_name`コンポーネントを変更(デフォルト)
    - `item_name`:`item_name`コンポーネントを変更

- `set_ominous_bottle_amplifier`を追加
  - `amplifier`
    - 不吉な瓶(1.21で追加)の不吉な予感のエフェクトレベルを制御

### Damage Types
- `is_player_attack`追加
  - プレイヤーが実行する攻撃用のタグ

### Entity Types
- `immune_to_oozing`
  - 滲出(1.21で追加)エフェクトを受けられないエンティティ
- `immune_to_infested`
  - 虫食い(1.21で追加)エフェクトを受けられないエンティティ

### Entity Sub-Predicate
- `raider`を追加
  - `has_raid`:ブール値
    - レイド中のエンティティかどうかを指定
    - `true`の場合、`CanJoinRaid:1b`のエンティティに一致
  - `is_captain`:ブール値(オプション)
    - キャプテンかどうかを指定
    - `true`の場合、`PatrolLeader:1b`のエンティティに一致

<details><summary>レイド中のエンティティに一致するプレディケート</summary>

```json:
{
	"condition": "entity_properties",
	"entity": "this",
	"predicate": {
		"type_specific": {
			"type": "raider",
			"has_raid": true
		}
	}
}
```
</details>

### Block Entitys
アイテムスタック上のデフォルト以外のコンポーネントは、配置時ブロックエンティティに保存されるよう変更
  - デフォルトコンポーネントを削除したものは保存されない
  - ブロックエンティティではないものは何も保持されない
  - 保存されたコンポーネントはドロップ時にコピーされない(ルートテーブルで`copy_components`関数が必要)
  - コンポーネントは`components`に保存される
    - 一部のコンポーネント(`custom_name`など)は保存されない場合がある

### Particle
- `dust_piller`追加
  - block_markerのようにブロックIDを指定※プレリリース1で構文変更
- `infested`追加
- `item_cobweb`追加
- `small_gust`追加
- `raid_omen`追加
- `trial_omen`追加
- `trial_spawner_detection_ominous`追加
- `ominous_spawning`追加

### Other
- worldgenのintとfloatを使用するタグは`type`の`value`で制御されない
  - 例:`{"type":"uniform","value":{"min_inclusive":0.0,"max_inclusive":1.0}}`
が`{"type":"uniform","min_inclusive":0.0,"max_inclusive":1.0}`に変更



## 24w14a(datapack:38)
### Loot Function
- `set_attributes`に`replace`を追加(デフォルト:`true`)
  - `false`の場合、属性が追加される

### Components
- 本に関するコンポーネントのフィルター可能なエントリ内の`text`が`raw`に変更
- `profile`コンポーネントとプレイヤーヘッドブロックのデータでUUIDからの指定をサポートするよう変更
  - `name`を指定せず`id`のみ指定した場合、`name`とテクスチャーが検索され補間される
```:Hirobaoの頭
give @s player_head[profile={id:[1597470425,54610511,-1991118736,244247819]}]
```



## pre-release-1(datapack:39)
### Advancements
- 可鱗でしょう？(`Isn't it Scute?`)追加
  - ID:`adventure/brush_armadillo`
  - アルマジロにブラシを使用することで達成
- ハサミのきらめき(`Snip it!`)追加
  - ID:`husbandry/remove_wolf_armor`
  - ハサミを使用してオオカミから鎧を外すことで達成
  - プレリリース2で`Snip it!`が`Shear Brilliance`に変更
- まるで新品(`Good as New`)追加
  - ID:`husbandry/repair_wolf_armor`
  - 耐久値の減った鎧を装備したオオカミにアルマジロのウロコを使用することで達成
- ワンチーム(The Whole Pack)追加
  - ID:`husbandry/whole_pack`
  - 全ての種類のオオカミを手懐けることで達成

### Predicates
- 指定されていない場合、コンポーネント内のタグと同じ名前のプレディケート内の同名タグは一致する
- これらのタグは基本的にコンポーネント内と同じタイプになるが例外もある
  - リスト形式は`collection matcher`に置き換えられる
  - intとfloatの値は最小、最大の範囲に置き換えられる
  - レジストリID(名前空間ID)はリストかタグを受け入れるタイプに置き換えられる

#### Collection Matcher
- `collection matcher`はコレクションの照合に使用されるプレディケートの共有部分
- 全てのインスタンスに同じ機能を持つ同じタグがあるが、一致する要素フィールドのタイプのみが異なる
  - `size`:コレクションのサイズと照合する数値の単一または範囲
    - `min`:最小値
    - `max`:最大値
  - `contains`:要素のリスト
    - 通過するにはすべての条件が一致していないといけない
    - コンテナ内のすべての要素が一致する必要はない
    - 単一の要素は複数一致する可能性もある
    - 要素は任意の順序で指定できる
    - 例:
    `{contents:[{item:diamond}]}`:ダイヤモンドが少なくとも1つある場合に一致
    `{contents:[{item:diamond}, {item:dirt}]}`:ダイヤモンドと土が少なくとも1つずつある場合に一致
  - `count`
    - `test`:検索する要素
    - `count`:`test`で一致した要素の数の単一または範囲(オプション)
      - `min`:最小値
      - `max`:最大値
    - 例:
    `{count:[{count:3,test:{items:diamond}}]}}`はダイヤモンドのスタックがちょうど3つある場合にのみ一致
- `collection matcher`が使用されるコンポーネント
  - `bundle_contents`コンポーネントの`items`
  - `firework_explosion`コンポーネントの`shape、has_trail、has_twinkle`
  - `fireworks`コンポーネントの`explosions`、`flight_duration`
    - 例:`fireworks~{explosions:{contains:[{shape:small_ball}]}}]`は花火に`small_ball`の形状が少なくとも1つは含まれている場合に一致
  - `writable_book_content`コンポーネントの`pages`
  - `written_book_content`コンポーネントの`pages`、`author`、`title`、`generation`、`resolved`
  - `attribute_modifiers`コンポーネントの`modifiers`(`attribute`、`id`、`name`、`amount`、`operation`、`slot`)
  - `trim`コンポーネントの`material`、`pattern`

### Components
- `food`コンポーネントの`saturation_modifier`を`saturation`に変更
  - `saturation`:プレイヤーの隠し空腹度に追加される値
  - 変更前の`saturation_modifier`においては`saturation=nutrition*saturation_modifier*2`で定義される

### Loot Functions
- `set_counts`の変更
  - `type`を削除
  - `component`を追加
    - 項目を埋め込む対象のコンポーネントを指定
    - 既存のコンテンツは置き換えられる
    - 許可される値:`container`、`bundle_contents`、`charged_projectiles`
    - `bundle_contents`と`charged_projectiles`は空のスタックを無視する
- `set_custom_data`の変更
  - `tag`は文字列として書き込まれたSNBTデータとフラット化されてないタグの両方受け入れるよう変更
- `modify_contents`の追加
  - コンポーネント内の全ての項目に適用する
  - コンポーネントが存在しない場合は追加されない
  - `conditions`
    - この関数をフィルタリングするための条件のリスト
  - `component`
    - ターゲットコンポーネント
    - 許可される値:`container`、`bundle_contents`、`charged_projectiles`
  - `modifier`
    - コンテナ内の全ての項目に適用される関数か関数のリスト
- `set_item`の追加
  -  数とコンポーネントを変更せずにアイテムスタックのアイテムタイプのみ置き換える
  - `modifier`
    - この関数をフィルタリングするための条件のリスト
  - `item`
    - 置き換えるアイテムタイプ
- `filtered`の追加
  - 条件に一致する項目にのみサブ関数を適用する
  - `conditions`
    -  この関数をフィルタリングするための条件のリスト
  - `item_filter`
    - 項目を照合するために使用される条件
  - `modifier`
    - 一致する項目に適用する関数
- `set_custom_model_data`の追加
  - `custom_model_data`コンポーネントを設定する
  - `conditions`
    - この関数をフィルタリングする条件のリスト
  - `value`
    - 整数プロバイダー

### Particle
- コマンド内のパーティクルオプションとエリアエフェクトクラウドのパーティクル等のタグでworldgenファイルと同じ表現を使用するよう変更
- 追加オプションを持たない(`heart`や`happy_villager`のような)パーティクルの構文は変更されない
- ブロック系パーティクルのオプション変更
  - `block_marker`、`block`、`falling_dust`、`dust_pillar`のオプション変更
  - `value`を`block_state`に変更
  - `block_state`はデフォルトのブロックの状態を表すプレーンなブロック名も受け入れる
```:灯りが付いているレッドストーンランプのブロックパーティクル
particle block{block_state:{Name:redstone_lamp,Properties:{lit:"true"}}} ~ ~1 ~
```
- `item`のオプション変更
  - `value`を`item`に変更
  - `item`はデフォルトのコンポーネントを含むスタックのプレーンなアイテムも受け入れる
  - `count`は無視される
```:カスタムモデルを適用したダイヤモンドのアイテムパーティクル
particle item{item:{id:diamond,components:{custom_model_data:1}}} ~ ~1 ~
```
- `dust_color_transition`のオプション変更
  - `fromColor`を`from_color`に変更
  - `toColor`を`to_color`に変更
```:赤から青に変わるダストパーティクル
particle dust_color_transition{from_color:[1,0,0],to_color:[0,0,1],scale:0.9} ~ ~1 ~
```
- `entity_effect`のオプション変更
  - `value`を`color`に変更
  - `color`はRGBAカラーを表すfloatのリストを受け入れる
```:赤い半透明のエンティティエフェクト
particle entity_effect{color:[1.0,0.0,0.0,0.6]} ~ ~1 ~
```
- その他の変更されたパーティクルの例
```:赤色でスケール1のダストパーティクル
particle dust{color:[1,0,0],scale:1} ~ ~1 ~
```
```:傾きが1.2ラジアンのスカルクチャージパーティクル
particle sculk_charge{roll:1.2} ~ ~1 ~
```
```:10tick後に表示されるシュリークパーティクル
particle shriek{delay:10} ~ ~1 ~
```
```:実行座標から座標:[0,0,0]のブロックに1tickかけて飛ぶ振動パーティクル
particle vibration{destination:{type:block,pos:[0,0,0]},arrival_in_ticks:1} ~ ~ ~
```

### Item Tags
- `tools`を削除(`breaks_decorated_pots`と重複)

### Enchantment Tags
- `tooltip_order`を追加
  - ツールチップにエンチャントがリストされる順序を制御

### Entity Types
- `punchable_projectiles`を追加
  - プレイヤーが見ている方向にパンチしたりそらせたりできる発射物用のエンティティタイプタグ
  - プレリリース3で`redirectable_projectile`に変更

### Other
- 本のページ制限がなくなった
- `structure`の`terrain_adaptation`に`encapsulate`を追加
  - 構造の周囲全てに関する密度が追加
  - 完全に地下に埋める必要がある構造物に最適
- モンスタースポナーの`SpawnPotentials`とトライアルスポナーの`spawn_potentials`のオプションの`equipment_loot_table`を変更
  - `equipment_loot_table`を`equipment`に変更
  - `loot_table`
  - `slot_drop_chances`
    - 指定されたドロップ確率を装備スロットに適用
    - スロットに適用するリストの代わりに単一の値も可能(その場合、全てのスロットに適用される)

<details><summary>例</summary>

```jsonnet:
"equipment":{
    "loot_table":"equipment/trial_chamber",
    "slot_drop_chances":{
        "head":0.0f,
        "chest":0.25f,
        "legs":1.0f,
        "feet":0.25f
    }
}
```
</details>



## pre-release-2(datapack:40)
### Loot Function
- `set_fireworks`の変更
  - `explosions`と`mode`がサブオブジェクトとしてグループ化される
  - `{"explosions":<list>,"mode":<mode>,<mode-dependent fields>}`は`{"explosions":{"values":<list>,"mode": <mode>,<mode-dependent fields>}}`に変更
  - `explosions`はオプションで、その中の`value`は必須に変更



## pre-release-3(datapack:41)
### Entity Types
- `punchable_projectiles`をプレイヤーの攻撃や発射物によってリダイレクトされる可能性のある発射物用の`redirectable_projectile`に変更

</details>