В системах, которые должны оставаться совместимыми с существующими клиентами, можно использовать ваш подход, но аргумент единственного объекта будет передаваться либо как тип базового класса, либо как тип интерфейса, либо, в случае языка C, как структура переменной длины, включающая длину или номер версии. Последний вариант довольно устарел, но и C тоже.
Для веб-приложений обычным делом является использование пар ключ-значение в URL. Наиболее эффективный способ решения этой проблемы в значительной степени зависит от технологии.
Прикрепляю к посту несколько видео по теме: