Поточность исполнения правил

Добрый день! В связи с изоляцией друг от друга фрагментов кода правил, размещенных в разных файлах, и отсутствием (по моим данным) механизма объявления функций для нескольких файлов правил, остается фактически единственный “механизм” реализации такого функционала - через виртуальные устройства. В связи с чем возникает вопрос: всегда ли правила исполняются в одном потоке?

Т.е. в варианте, когда у виртуального устройства “VirtDev” есть два текстовых свойства Text1 и Text2, а также pushbutton Start. гарантировано ли атомарное исполнение прописанной в тексте файла правил последовательности с присвоением свойствам текстовых значений и следующим за ним присвоением значения true для pushbutton?

Все это - естественно, при отсутствии правил на текстовые свойства.

Или возможны варианты прерывания исполнения последовательности?

В том случае если выполняется в одной функции друг за другом - то на очередь публикации станут в таком же порядке. Ну и опубликуются в брокер. Но на самом деле, пожалуй, никто не исследовал именно порядок публикации,
Какой от этого практический толк и где может иметь значение?
Pushbutton, кстати, не нажимается из правил.

Цель - иметь возможность параметризованно вызвать определенный фрагмент кода из любого из файлов правил.

Вот тут не очень понятно. Хотя я не настоящий программист, конечно.
Но: любой скрипт js выполняется интерпретатором один раз, после этого остаются только уже объекты. Такие как таймеры, обработчики. Да, в процессе работы тем же обработчиком подписки MQTT whenChanged или функцией таймера могут быть порождены какие-то дополнительные объекты. Или удалены существующие. То есть код уже не используется никак.
Но вот обращение к фрагменту - к сожалению не понимаю.

Попробую переформулировать. Код правил размещен в нескольких разных файлах. В некоторых файлах также присутствуют описания вспомогательных функций, но они доступны только в пределах соответствующих файлов.

Условно говоря, есть некая параметризованная функция типа

var someFunc = function (Param1, Param2, Param3) {...}

Функция описана в одном файле. А эту функцию необходимо вызывать из разных правил, точнее - из правил, размещенных в разных файлах. Дублировать описание в каждом - не вариант. Как это реализовать?

А, для этого есть модули.

Да, это, думаю, то, что нужно! Спасибо.

Хорошо бы в web-интерфейсе иметь возможность работать с файлами модулей

Да, запишу в пожелания.