И это всё МОЁ

Я понимаю, что в package.json помимо сведений об авторе, ключевых словах есть еще и зависимости. Но непонятно зачем тут сделано описание используемых пакетов (dependencies и devDependencies) если это можно было описать в package-lock.json. Именно в package-lock.json же хранится полное дерево установленных пакетов с блокировкой их версий. В чем логика?
Мне кажется, что версии пакетов в package.json избыточны.