The file `source.ts` contains a TypeScript module that builds a user store on
top of a range of utility types (key extraction, partial updates, picking,
read-only views, record maps, non-nullable fields, and function-type
extraction).

Convert it to idiomatic Flow in `main.js`, preserving the runtime behavior and
the precision of every type. The result must pass `flow check` with zero errors.
