# Reflect.2. Deriving props — Mercury LMS > Contract: `@fiberfx/reflect` 4.1.1; Hypergraph and Hyperscript 4.1.1. ## Contract mapProps is a config field, not an export. Sources are Store, flat object/tuple of stores, or empty object. fn(values, baseProps) is pure and synchronous. All projections receive bound/incoming props, never sibling outputs. Mapped keys are optional in that input type. ## Overrides and refusals An own prop, including explicit undefined, skips the matching fn. Omission retains derivation. bind/mapProps overlap throws; non-store and nested sources refuse. Do not infer subscription elimination from projection suppression. Returned callables are unchanged and unscoped. ## Exercise [Projection lab](/examples/reflect-lab/index.html?part=projections&lang=en): name and prefix, fixed override, undefined override, remove override, reset. Transfer to a count-based status line. Optional binding keys do not guarantee required props; prefer satisfies when preserving literal keys. ## Source `fiberfx/reflect/src/reflect.ts:32-62`, `src/types.ts:47-63`, `test/collections.test.ts:24-88`; npm 4.1.1. ## Navigation - [HTML](/reflect/projections) - [Reflect](/reflect/llms.txt) - [Index](/llms.txt) - [Sitemap](/sitemap.xml) - [All English companions](/llms-full.txt)