# RefRecord.mapKeys

Map keys to different keys.

## Signatures

```ts
export declare const mapKeys: {
    <K extends string, K2 extends string>(f: (key: K) => K2): <V, E, R>(ref: RefRecord<K, V, E, R>) => RefSubject.Computed<Record.ReadonlyRecord<K2, V>, E, R>;
    <K extends string, V, E, R, K2 extends string>(ref: RefRecord<K, V, E, R>, f: (key: K) => K2): RefSubject.Computed<Record.ReadonlyRecord<K2, V>, E, R>;
};
```

## Why

Projects record state with map keys for both current reads and future pushes, avoiding a second
mutable cache of the derived value.

## Ownership and lifetime

The map keys view retains no independent state. An Effect read samples the source once; Fx
observation follows later pushes and its observing Scope owns subscription cleanup.
