Почему-то сейчас эта реактивность в фреймворках завязанная иммутабильность и на то что ты "перезаписываешь" значение переменной а не обновляешь его -- кажется ебланизмом
Я конечно скорее всего не прав, но писать
```
dots = { ...dots, [currentIndex]: [...dots[currentIndex], { x, y }] };
```
вместо
```
dots[currentIndex].push({x,y})
```
Выберите более криповый вариант сами :)
Может в Svelte есть для этого сахар, но я не знаю :)