---
title: Authoring model
description: Layers, bindings, and variables, and what each becomes in Karabiner.
---

Everything you edit in Vimputer is a layer, a binding, or a variable.

<ModelMap />

| Record | Holds | In `karabiner.json` |
| --- | --- | --- |
| [Layer](/docs/authoring/layers) | Bindings, plus how the layer turns on | Conditions on each of its bindings. A modal layer is a value of `vimputer.layer`. |
| [Binding](/docs/authoring/bindings) | A trigger, its actions at each moment, and conditions | One manipulator |
| [Variable](/docs/authoring/variables) | A named value that bindings set and conditions read | `vimputer.state.<id>` |

Layers and variables save as you edit them. A binding saves when you choose
**Save** in its editor. Nothing reaches Karabiner until you
[generate](/docs/runtime/generate).
