{
	"format_version": "$general.format_version",
	"minecraft:client_entity": {
		"description": {
			"identifier": "$general.file_identifier and $general.entity_identifier",
			"min_engine_version": "$general.format_version",
			"enable_attachables": "$general.boolean",
			"spawn_egg": {
				"texture": {
					"@meta": {
						"is_value": true
					},
					"@import.value.item_texture": "$dynamic.rp.item_textures"
				},
				"texture_index": "$general.number",
				"base_color": {
					"@meta": {
						"is_value": true,
						"is_color": true
					}
				},
				"overlay_color": {
					"@meta": {
						"is_value": true,
						"is_color": true
					}
				}
			},
			"materials": {
				"$placeholder": {
					"@meta": {
						"is_value": true
					},
					"@import.value.material": "$client_entity.general.material"
				}
			},
			"textures": {
				"$placeholder": {
					"@meta": {
						"is_value": true
					},
					"@import.value.entity_texture": "$dynamic.rp.entity_textures"
				}
			},
			"geometry": {
				"$placeholder": "$general.model_identifier"
			},
			"animations": {
				"$placeholder": {
					"@meta": {
						"is_value": true,
						"definitions": [
							"rp_animation",
							"rp_animation_controller"
						]
					},
					"@import.value.animations": "$dynamic.cache.rp_animation.ids and $dynamic.cache.rp_animation_controller.ids"
				},
				"@meta": {
					"validate": {
						"confirm": "Bridge.Node.children.length == 0",
						"then": {
							"show": true,
							"message": "Node has too few children (0 < 1)"
						}
					}
				}
			},
			"scripts": {
				"scale": "$general.decimal",
				"initialize": {
					"$dynamic.list.next_index": {
						"@meta": {
							"is_value": true,
							"is_molang": true
						}
					}
				},
				"pre_animation": {
					"$dynamic.list.next_index": {
						"@meta": {
							"is_value": true,
							"is_molang": true
						}
					}
				},
				"$versioned_template.animate": [
					{
						"$if": "$format_version > 1.8.0",
						"$data": {
							"$dynamic.list.next_index": {
								"$dynamic.client_entity.animation_references": {},
								"$placeholder": "$molang.embedded",
								"@import.value.animation": "$dynamic.client_entity.animation_references"
							}
						}
					}
				],
				"$versioned_template.variable": [
					{
						"$if": "$format_version >= 1.16.100",
						"$data": {
							"$placeholder": ["public"]
						}
					}
				]
			},
			"sound_effects": {
				"$placeholder": "$function.general.sound_definitions"
			},
			"render_controllers": {
				"$dynamic.list.next_index": {
					"@meta": {
						"is_value": true,
						"definitions": ["render_controller"]
					},
					"@import.value.render_controller": "$dynamic.cache.render_controller.ids"
				}
			},
			"particle_effects": {
				"$placeholder": {
					"@meta": {
						"is_value": true,
						"definitions": ["particle"]
					},
					"@import.value.particle": "$dynamic.cache.particle.ids",
					"@import.value": "$vanilla.particle_identifier"
				}
			},
			"particle_emitters": {
				"$placeholder": {
					"@meta": {
						"is_value": true
					}
				}
			},
			"$versioned_template": [
				{
					"$if": "$format_version = 1.8.0",
					"$data": {
						"animation_controllers": {
							"$dynamic.list.next_index": {
								"$placeholder": {
									"@meta": {
										"is_value": true,
										"definitions": [
											"rp_animation_controller"
										]
									},
									"@import.value.animations": "$dynamic.cache.rp_animation_controller.ids"
								}
							}
						}
					}
				}
			]
		}
	}
}
