{
  "format_version": "1.10.0",
  "particle_effect": {
    "description": {
      "identifier": "minecraft:enchanting_table_particle",
      "basic_render_parameters": {
        "material": "particles_blend",
        "texture": "textures/particle/enchanting_table_particles"
      }
    },

    "components": {
      "minecraft:emitter_rate_instant": {
        "num_particles": 1
      },

      "minecraft:emitter_lifetime_once": {},
      "minecraft:emitter_shape_point": {},

      "minecraft:particle_lifetime_expression": {
        "max_lifetime": "Math.random(0.5, 2.5)"
      },

      "minecraft:particle_motion_parametric": {
        "relative_position": [
          "variable.pos = 1 - (variable.particle_age / variable.particle_lifetime); return variable.direction.x * variable.pos;",
          "variable.direction.y * variable.pos - Math.pow((1 - variable.pos), 3) * 1.2",
          "variable.direction.z * variable.pos"
        ]
      },

      "minecraft:particle_appearance_billboard": {
        "size": [ "variable.particle_random_1 * 0.05 + 0.02", "variable.particle_random_1 * 0.05 + 0.02" ],
        "facing_camera_mode": "lookat_xyz",
        "uv": {
          "texture_width": 128,
          "texture_height": 128,
          "uv": [
            "variable.particle_random_3 < 0.5 ? Math.round(variable.particle_random_2 * 14) * 8 + 8 : Math.round(variable.particle_random_2 * 10) * 8",
            "variable.particle_random_3 < 0.5 ? 112 : 120"
          ],
          "uv_size": [ 8, 8 ]
        }
      },

      "minecraft:particle_appearance_tinting": {
        "color": [
          "variable.particle_random_3 * 0.54 + 0.36",
          "variable.particle_random_3 * 0.54 + 0.36",
          "variable.particle_random_3 * 0.6 + 0.4"
        ]
      }
    }
  }
}
