# Reflect.3. Разделяем области состояния — Mercury LMS > Контракт `@fiberfx/reflect` 4.1.1; Hypergraph и Hyperscript 4.1.1. ## Контракт Использовать существующий Provider из @fiberfx/hypergraph/hyperscript. Reflect не создаёт и не освобождает области. setScopeMode("required") отклоняет отсутствие Provider в общем слое привязки. Представления размонтировать до dispose. ## Изоляция Одна модель, два fork(). Обработчики связаны через Reflect. При значениях 2 слева и 1 справа сброс слева даёт 0 и 1. Глобальное состояние проверить отдельно. Переданный связанный обработчик сохраняет исходную область; собственный useUnit ребёнка использует Provider в месте его вывода. ## Ограничения Отсутствие Provider проверять отдельно. Прямой вызов события вне привязки не становится локальным из-за наличия Provider на странице. Тест ожидания эффекта Hypergraph не доказывает сохранение контекста через любые сторонние Promise. ## Практика [Эксперимент](/examples/reflect-lab/index.html?part=scopes&lang=ru). Сброс панели меняет её модель; общий перезапуск пересоздаёт сцену. Основание: reflect.ts:108-117, composition.test.ts:80-105; npm 4.1.1. ## Навигация - [HTML](/ru/reflect/scopes) - [Reflect](/ru/reflect/llms.txt) - [Index](/ru/llms.txt) - [Карта сайта](/sitemap.xml) - [Все английские версии для агентов](/llms-full.txt)