# keymap/save-map
Write a caller-supplied nested map in the same shape `keymap/scan` returns to a keytable file. Used by the keys app to persist an edited binding set. Values are stringified; a `nil` value is written as `nil` (a disabled binding).
## Syntax
[keymap/save-map $map ?path]
## Parameters
- `$map` — nested `%{ app %{ mode %{ chord cmd } } }` map; string or keyword keys accepted at every level.
- `?path` — (optional) destination, defaults to the workspace keytable.
## Examples
[keymap/save-map %{ :editor %{ :default %{ "ctrl-z" "cmd-undo" "f1" nil } } }]
## Returns
Boolean — `true` on success, `false` on write failure. `%Err{:message}` when the first argument is not a map. Non-map subtrees and non-string-like keys are skipped.
## See Also
`keymap/save`, `keymap/scan`, `keymap/save-overrides`