# `Dmn.Model.DecisionTable`
[🔗](https://github.com/FeeJai/BDM/blob/dmn-v0.1.0/apps/dmn/lib/dmn/model/decision_table.ex#L1)

A `decisionTable` (DMN 1.6, clause 8.3).

| Field | Is |
| ----- | -- |
| `hit_policy` | `:unique` (the default), `:first`, `:priority`, `:any`, `:collect`, `:rule_order`, `:output_order` |
| `aggregation` | for `:collect`: `:sum`, `:count`, `:min`, `:max`, or `nil` for the list |
| `inputs` | the `Dmn.Model.DecisionTable.Input`s |
| `outputs` | the `Dmn.Model.DecisionTable.Output`s, one or more |
| `annotations` | the names of the annotation columns, which are not part of the logic |
| `rules` | the `Dmn.Model.DecisionTable.Rule`s, in order (the order is the meaning for `:first` and `:rule_order`) |
| `output_label` | the label of the output, usually the name of the decision |

# `hit_policy`

```elixir
@type hit_policy() ::
  :unique | :first | :priority | :any | :collect | :rule_order | :output_order
```

# `t`

```elixir
@type t() :: %Dmn.Model.DecisionTable{
  aggregation: :sum | :count | :min | :max | nil,
  annotations: [String.t()],
  hit_policy: hit_policy(),
  id: String.t() | nil,
  inputs: [Dmn.Model.DecisionTable.Input.t()],
  label: String.t() | nil,
  line: pos_integer() | nil,
  output_label: String.t() | nil,
  outputs: [Dmn.Model.DecisionTable.Output.t()],
  preferred_orientation: String.t(),
  rules: [Dmn.Model.DecisionTable.Rule.t()],
  type_ref: String.t() | nil
}
```

---

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