# `Cauldron2D.Net.Keys`
[🔗](https://github.com/jaman/cauldron/blob/v0.1.3/cauldron_2d_net/lib/cauldron_2d/net/keys.ex#L1)

A game's keymap as a browser reads it: `Cauldron2D.Input` key specs become
`KeyboardEvent.code` names, and mouse buttons the button numbers `cauldron.js` takes.

    Cauldron2D.Net.Keys.browser_keymap(%{left: [:a, :left], fire: [:" ", {:mouse, :left}]})
    #=> %{"KeyA" => "left", "ArrowLeft" => "left", "Space" => "fire", "mouse" => %{"0" => "fire"}}

A key with no browser code is left out.

# `browser_keymap`

```elixir
@spec browser_keymap(Cauldron2D.Input.keymap()) :: map()
```

A keymap as `cauldron.js` takes it.

# `code`

```elixir
@spec code(Cauldron2D.Input.key_spec()) :: String.t() | {:mouse, String.t()} | nil
```

The browser's name for a key spec, or `nil` when it has none.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
