# Reflect.2. Вычисляем свойства — Mercury LMS > Контракт `@fiberfx/reflect` 4.1.1; Hypergraph и Hyperscript 4.1.1. ## Контракт mapProps — поле конфигурации. Источник: Store, плоский объект или кортеж хранилищ, пустой объект. fn(values, baseProps) синхронна и чиста. Проекции получают базовые свойства, но не результаты соседних проекций; вычисляемые ключи в типе входных свойств необязательны. ## Переопределения и отказы Собственный ключ, включая явный undefined, отменяет вызов соответствующей fn. Отсутствие ключа сохраняет вычисление. Пересечение bind/mapProps и вложенные источники запрещены. Пропуск проекции не обещает удаления подписок. Возвращённые функции сохраняются без обёртки и без привязки к области. ## Практика [Эксперимент](/examples/reflect-lab/index.html?part=projections&lang=ru): имя и префикс, фиксированное значение, undefined, удаление переопределения, сброс. Самостоятельно сделать строку состояния с количеством. Необязательная привязка не гарантирует обязательное свойство. ## Основание `fiberfx/reflect/src/reflect.ts:32-62`, `src/types.ts:47-63`, `test/collections.test.ts:24-88`; npm 4.1.1. ## Навигация - [HTML](/ru/reflect/projections) - [Reflect](/ru/reflect/llms.txt) - [Index](/ru/llms.txt) - [Карта сайта](/sitemap.xml) - [Все английские версии для агентов](/llms-full.txt)