# `JSONRPC2.Spec`

This is implementation of transport agnostic JSONRPC 2.0 protocol. There is no transport level. It consists only of specification entities, such as:

- `JSONRPC2.Spec.Batch` - batch operations
- `JSONRPC2.Spec.Error` - error object and protocol predefined error codes
- `JSONRPC2.Spec.Request` - request object
- `JSONRPC2.Spec.Result` - result object

# `id`

```elixir
@type id() :: String.t() | integer() | nil
```

# `method`

```elixir
@type method() :: String.t()
```

# `params`

```elixir
@type params() :: list() | map()
```

---

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