# `ReqManagedAgents.Evidence.Record`
[🔗](https://github.com/cash-mckeeman/req_managed_agents/blob/v0.13.0/req_managed_agents/lib/req_managed_agents/evidence/record.ex#L89)

Source-local observations; native payload maps are provider-verbatim JSON at the raw edge.

# `t`

```elixir
@type t() :: %ReqManagedAgents.Evidence.Record{
  attempt_id: String.t() | nil,
  clock: :wall | :monotonic | :none,
  clock_id: String.t() | nil,
  content_state: :retained | :dropped | :redacted,
  id: String.t(),
  invocation_id: String.t() | nil,
  kind: :native | :local,
  monotonic_ticks: integer() | nil,
  native_id: String.t() | nil,
  observed_at: DateTime.t(),
  occurred_at: DateTime.t() | nil,
  ordinal: pos_integer(),
  payload: map() | ReqManagedAgents.Evidence.Record.Payload.t(),
  source_id: String.t(),
  validation_issue?: boolean()
}
```

# `new`

```elixir
@spec new(map(), keyword() | ReqManagedAgents.Evidence.Options.t()) ::
  {:ok, t()} | {:error, ReqManagedAgents.Evidence.Error.t()}
```

Validates record metadata and applies content policy; malformed native time becomes nil.
Safe validation findings remain on typed records for Capture diagnostics.

---

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