# `Gherkin.Feature`
[🔗](https://github.com/huddlz-hq/cucumber/blob/main/lib/gherkin.ex#L1)

Represents a parsed Gherkin feature file (minimal subset).

A Feature is the top-level element in a Gherkin file, containing a name,
optional description, optional background, scenarios, and rules.
It can also have tags that apply to all scenarios in the feature.

`tag_lines` records each tag's own source line (parallel to `tags`) and
`comments` collects every comment line in the file as `{line, text}` —
both for Cucumber Messages locations; the published `tags` shape is
unchanged.

# `t`

```elixir
@type t() :: %Gherkin.Feature{
  background: Gherkin.Background.t() | nil,
  comments: [{non_neg_integer(), String.t()}],
  description: String.t(),
  line: non_neg_integer() | nil,
  name: String.t(),
  rules: [Gherkin.Rule.t()],
  scenarios: [Gherkin.Scenario.t() | Gherkin.ScenarioOutline.t()],
  tag_lines: [non_neg_integer()],
  tags: [String.t()]
}
```

---

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