# `Obscura.Recognizer.PatternDefinition`
[🔗](https://github.com/hfiguera/obscura/blob/v0.2.0/lib/obscura/recognizer/pattern_definition.ex#L1)

Data-backed custom pattern recognizer definition.

# `pattern`

```elixir
@type pattern() :: %{name: atom(), regex: Regex.t(), score: float()}
```

# `t`

```elixir
@type t() :: %Obscura.Recognizer.PatternDefinition{
  context: [String.t()],
  entity: atom(),
  invalidate: (String.t() -&gt; term()) | nil,
  metadata: map(),
  name: atom(),
  patterns: [pattern()],
  validate: (String.t() -&gt; term()) | nil
}
```

# `new!`

```elixir
@spec new!(keyword()) :: t()
```

Builds a pattern definition or raises for invalid input.

---

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