Я был в похожей ситуации. Передайте каждый компонент отдельно. Это проясняет вызывающим сторонам, какие значения требуются, и проясняет разработчикам, какие значения доступны.
Если вы передадите всю структуру, то вызывающие абоненты будут не уверены, сколько структуры им действительно нужно заполнить. Хуже того, разработчики функций могут начать ссылаться на другой член структуры, который не всегда доступен или не всегда действителен.
Еще одна вещь, которую вы можете увидеть во время обслуживания, это то, что некоторые неиспользуемые элементы структуры могут быть перегружены для передачи новых параметров, которые ранее не ожидались, и имена полей больше не будут соответствовать значениям, которые они представляют.
Передача всех параметров по отдельности дает всем понять, что на самом деле является контрактом, и делает явным добавление новых параметров.