Отличная функция! Однако
меня интересует больше сортировка «Лучшие / Новые / Старые», чем сама вложенная структура. Я уже реализовывал похожие элементы управления сортировкой в своём мобильном приложении (клиент для Discourse) и с радостью поддержал бы это нативно, вместо моего текущего метода, который, как я покажу ниже, тоже работает.
Изучив исходный код, я вижу, что запрос GET /n/{slug}/{topic_id}.json?sort={top|new|old}&page={n} возвращает тему во вложенном виде, отсортированную по выбранному режиму. Мой вопрос: есть ли интерес к тому, чтобы через существующую конечную точку /t/{slug}/{topic_id}.json (например, ?sort=top) экспонировать только сортировку, чтобы клиенты с плоским видом тоже могли этим воспользоваться?
Если сортировка будет доступна для плоского вида, сторонние клиенты смогут подключиться к ней, не переходя на модель рендеринга вложенного вида.
Я понимаю, что именно структура данных вложенного вида (корневые сообщения + ленивые дочерние элементы) делает сортировку на стороне сервера выполнимой, а плоский вид использует другую логику пагинации. Если полноценная сортировка плоского вида нереалистична по соображениям производительности, даже опциональный параметр ?sort=top&limit=N был бы достаточен для реализации представления «Лучшее».

