{
  "id": "squish_impact",
  "type": "procedural",
  "loop": false,
  "durationSeconds": 0.45,
  "intensity": 0.9,
  "priority": "reaction",
  "transforms": [
    { "time": 0.0, "scale": [1.0, 1.0, 1.0], "positionOffset": [0.0, 0.0, 0.0], "rotationDegrees": [0, 0, 0] },
    { "time": 0.06, "scale": [1.35, 0.6, 1.35], "positionOffset": [0.0, -0.2, 0.0], "rotationDegrees": [0, 0, 0] },
    { "time": 0.18, "scale": [0.82, 1.28, 0.82], "positionOffset": [0.0, 0.12, 0.0], "rotationDegrees": [0, 0, 0] },
    { "time": 0.3, "scale": [1.12, 0.9, 1.12], "positionOffset": [0.0, -0.04, 0.0], "rotationDegrees": [0, 0, 0] },
    { "time": 0.38, "scale": [0.96, 1.05, 0.96], "positionOffset": [0.0, 0.02, 0.0], "rotationDegrees": [0, 0, 0] },
    { "time": 0.45, "scale": [1.0, 1.0, 1.0], "positionOffset": [0.0, 0.0, 0.0], "rotationDegrees": [0, 0, 0] }
  ],
  "notes": "One-shot impact reaction. Snap hard to a flat squash (y=0.6, x/z=1.35) almost instantly (sharp ease-out into the 0.06s key), then elastic overshoot to a stretch, and ring down through a decaying bounce to neutral. Use fast linear/ease-out into the squash and ease-out elastic out of it. The negative y offset on the squash key plants the toy on the ground so it doesn't float. Anchor the pivot at the base of the character so squash spreads downward, not centered."
}
