# `Mnemosyne.Pipeline.Retrieval.TaggedCandidate`
[🔗](https://github.com/edlontech/mnemosyne/blob/main/lib/mnemosyne/pipeline/retrieval/tagged_candidate.ex#L1)

Internal struct representing a scored candidate with its origin phase.
Replaces raw `{node, score}` tuples in the retrieval pipeline.

# `t`

```elixir
@type t() :: %Mnemosyne.Pipeline.Retrieval.TaggedCandidate{
  hop: non_neg_integer() | nil,
  node: struct(),
  phase: atom(),
  score: float()
}
```

# `from_hop_0`

```elixir
@spec from_hop_0(
  struct(),
  float()
) :: t()
```

Builds a tagged candidate from the initial retrieval phase (hop 0).

# `from_multi_hop`

```elixir
@spec from_multi_hop(struct(), float(), non_neg_integer()) :: t()
```

Builds a tagged candidate discovered during multi-hop traversal at the given hop depth.

# `from_provenance`

```elixir
@spec from_provenance(
  struct(),
  float()
) :: t()
```

Builds a tagged candidate from the provenance lookup phase.

# `from_refinement`

```elixir
@spec from_refinement(struct(), float(), non_neg_integer()) :: t()
```

Builds a tagged candidate from the query refinement phase at the given hop.

---

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