Добавление участников группы против добавления владельцев: формат данных отличается

При использовании API для добавления участников и владельцев в группу, похоже, что требуемый формат данных отличается. Возможно, это сделано намеренно, но я хотел бы узнать почему (это ломает pydiscourse — лучшую библиотеку, которую я смог найти для взаимодействия с API Discourse на Python).

Добавление участника в группу:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/members.json" \
    -d 'usernames={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

Добавление владельца в группу:

curl -X PUT "https://{mydomain}/admin/groups/{group_id}/owners.json" \
    -d 'group[usernames]={my-username}' \
    -H "Api-Key: {my-api-key}" \
    -H "Api-Username: {my-api-username}"

Меня интересует, почему ключ параметра username в эндпоинте для владельцев должен быть записан как group[usernames], а не просто usernames?

Единственная причина, которую я могу назвать, заключается в том, что на самом деле используются два разных контроллера.

Эндпоинт добавления участников сопоставлен с контроллером groups:

PUT /admin/groups/:id/members(.:format) groups#add_members

А эндпоинт добавления владельцев сопоставлен с контроллером admin/groups.

PUT /admin/groups/:id/owners(.:format) admin/groups#add_owners

Маловероятно, что мы обновим этот эндпоинт, поскольку многие интеграции уже используют его в текущем виде. Лучшим решением будет открыть issue в репозитории pydiscourse. Вы также можете применить monkey patch для исправления функции add_group_owner в вашем Python-приложении, пока проблема не будет решена внутри pydiscourse.