# `Runic.Workflow.Fact`
[🔗](https://github.com/zblanco/runic/blob/main/lib/workflow/fact.ex#L1)

# `hash`

```elixir
@type hash() :: Runic.Identity.t() | integer() | binary()
```

# `t`

```elixir
@type t() :: %Runic.Workflow.Fact{
  ancestry: {hash(), hash()} | nil,
  causal_ancestry: Runic.Workflow.FactAncestry.t() | nil,
  content_digest: Runic.Identity.t() | nil,
  hash: hash(),
  id: Runic.Identity.t() | nil,
  meta: map(),
  payload_digest: Runic.Identity.t() | nil,
  value: term()
}
```

# `new`

Constructs a Fact and its payload, content, and occurrence identities.

Supply a `:fact_occurrence` Identity in `:id` to distinguish equal inputs.
The compatibility `:hash` field mirrors that ID; supplying both fields with
different identities raises. Legacy integer or binary hashes remain accepted
when no `:id` is supplied.

---

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