Отступ как контекст исполнения
Если принять, что отступ = новый контекст исполнения, исполнитель перестаёт читать файл сверху вниз. Он работает как интерпретатор дерева: строит AST, а затем решает, как его выполнить.
Дерево намерений → план исполнения
Сначала строится дерево намерений, и только потом — план исполнения:
Login
├── Profile
└── Orders
└── Items
Например, вложенные запросы сдвигом на 2 пробела — это потенциальные циклы, чтобы обходить страницы пагинации или дочерние коллекции.
Вложенность задаёт scope
Отступы — не визуальное оформление, а область контекста. Если родитель вернул коллекцию, дочерний узел запускается для каждого элемента (foreach):
### Users
GET /users
### Orders
GET /orders?user={{ $item.id }}
Если Users вернул [{id:1}, {id:2}], то Orders выполнится дважды: /orders?user=1 и /orders?user=2.
Специальные объекты контекста:
$item— текущий элемент коллекции;$parent— результат родительского узла.
Так «выполнение шагов» превращается в «поток данных по дереву»: дочерний узел потребляет результат родителя, а исполнитель автоматически раскрывает циклы.
Источники
- Обсуждение концепции httplan — диалог с ChatGPT (2026-07-08), chatgpt.com/share/6a4e7804-ce90-83ed-acd0-0def6540872d