# `JsonRemedy.Layer3.ContextManager`
[🔗](https://github.com/nshkrdotcom/json_remedy/blob/v0.2.1/lib/json_remedy/layer3/context_manager.ex#L1)

Context management functions for Layer 3 syntax normalization.

Handles parsing state, expectation tracking, and context transitions
during character-by-character processing.

# `determine_expecting_after_close`
[🔗](https://github.com/nshkrdotcom/json_remedy/blob/v0.2.1/lib/json_remedy/layer3/context_manager.ex#L25)

```elixir
@spec determine_expecting_after_close(list()) :: :comma_or_end | :value
```

Determine what to expect after closing a delimiter.

# `determine_next_expecting`
[🔗](https://github.com/nshkrdotcom/json_remedy/blob/v0.2.1/lib/json_remedy/layer3/context_manager.ex#L13)

```elixir
@spec determine_next_expecting(map()) :: atom()
```

Determine what to expect next based on current state.

# `get_position_info`
[🔗](https://github.com/nshkrdotcom/json_remedy/blob/v0.2.1/lib/json_remedy/layer3/context_manager.ex#L91)

```elixir
@spec get_position_info(String.t(), non_neg_integer()) :: %{
  line: pos_integer(),
  column: pos_integer(),
  context: String.t()
}
```

Get position information for error reporting.

# `inside_string?`
[🔗](https://github.com/nshkrdotcom/json_remedy/blob/v0.2.1/lib/json_remedy/layer3/context_manager.ex#L38)

```elixir
@spec inside_string?(String.t(), non_neg_integer()) :: boolean()
```

Check if a position in the input is inside a string literal.
Used to avoid applying repairs to string content.

---

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