Как работало ранее

Фактическая связь конкретного элемента с переходом ранее отсутствовала. Команда destination (next) запускала на бэке алгоритм определения следующего экрана, проверяющий исключительно условия, установленные в админке.

Как будет работать далее

Далее конкретные события на бэке будут привязаны к определенным элементам (это может быть нода, экран, виджет, поле). Главное, что бэк должен получать id элемента, с которым было произведено действие.

Важная терминология

action - действие, которое необходимо совершить (переход далее, назад, асинхнонный запрос, изменение значения какого-то property)

event - событие (click, hover, …). Событие является триггером какого-то action

Action не обязательно должен быть связан с обращением куда-то. Это может быть, например, просто изменение какого-то параметра на экране.

Один event одного элемента может быть триггером нескольких actions.

Изменения в JSON /step

Ранее у всех кнопок достаточно было использовать property action = next/previous. Этот property пока не будет удаляться, а ранее принимаемые по нему переходы пока будут работать.

Далее же в настройки соответствующих элементов (или даже на уровне с настройками) появится следующая структура:

{
	"id": 634278,
	"order": 5,
	"nodeType": "button.example",
	"events": [
		 {
				"eventId": 3,
				"event": "click",
				"action": "goto",
				"param": ""
		 },
		 {
				"eventId": 2,
				"event": "hover",
				"action": "async",
				"param": "<https://example.com>"
		 }
		],
	"properties": {
	  "visibility": "true",
	  "align": "left",
	  "text": "<span class='font-text-interlinear'><span class='color-text-minor-second'>hello!</span></span>",
		"action": "next" 
	}
}

Пример полного JSON степ с action

Потенциальные action:

next - попытка перехода вперед, когда она не связана с конкретным элементом

prev - попытка перехода назад, когда не связана с конкретным элементом