VibratePatternTool
Plays a waveform vibration from timings — alternating OFF/ON durations in ms, starting with OFF (timings[0] is a delay before the first vibration; matches VibrationEffect.createWaveform/legacy Vibrator.vibrate(long[], int) semantics exactly). Any non-empty length is valid — there is no even/odd requirement. Optional repeat index (-1 = no repeat, clamped to bounds). Requires VIBRATE.
Output key on success: success (true). Errors on invalid timings or a device with no vibrator.