# `Alaja.CLI.OptionsParser`
[🔗](https://github.com/Lorenzo-SF/alaja/blob/2.1.0/lib/alaja/cli/options_parser.ex#L1)

Standardized option parsing for CLI commands.

Provides a consistent way to parse command-line options using a schema-based approach.

# `alias_list`

```elixir
@type alias_list() :: [{atom(), atom()}]
```

# `parse_result`

```elixir
@type parse_result() :: {keyword(), [String.t()], [String.t()]}
```

# `schema`

```elixir
@type schema() :: %{
  :switches =&gt; [switch()],
  optional(:aliases) =&gt; alias_list(),
  optional(:defaults) =&gt; keyword()
}
```

# `switch`

```elixir
@type switch() :: {atom(), switch_type()}
```

# `switch_type`

```elixir
@type switch_type() :: :string | :integer | :float | :boolean | :atom
```

# `parse`

```elixir
@spec parse([String.t()], schema()) :: parse_result()
```

# `parse_value`

```elixir
@spec parse_value(String.t(), switch_type()) :: any()
```

---

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