# tmux_snapshot:metadata/0

- **Package:** libtmux_erlang
- **Language:** Erlang
- **Kind:** typealias
- **Source:** https://github.com/libtmux/libtmux-erlang/blob/d1b6308440cf9eb8f6647e7ae434bce60e849368/apps/libtmux_erlang/src/tmux_snapshot.erl#L77
- **Page:** https://libtmux.org/en/erlang/latest/reference/t-tmux_snapshot-metadata-0/

```
-type metadata() ::
          #{id := reference(),
            origin := reference(),
            model_version := 2,
            graph := complete | partial,
            generation => reference(),
            endpoint => #{socket_path := binary()},
            server_instance => tmux_identity:t(),
            tmux_version => tmux_version:t(),
            capture_started => integer(),
            capture_finished => integer(),
            time_unit => microsecond,
            source_calls => [source_call()],
            observed_bytes => non_neg_integer(),
            consistency => observed,
            hydration => tmux_server:hydration(),
            capabilities =>
                #{field_schema := 1,
                  identity := observed,
                  capture := observed},
            query => query_metadata(),
            atom() => term()}.
```

Capture identity and provenance. id identifies this snapshot, origin its registered endpoint and generation the endpoint lifetime. model_version names the row representation. graph describes relationship coverage, not atomicity.

Live captures include endpoint, observed server_instance, tmux_version,
monotonic capture bounds in time_unit, source_calls, observed stdout bytes and
capabilities. Those fields can be absent in internally constructed partial
captures. Query captures also include `t:query_metadata/0`. Opaque references
and process identities are local values, not portable wire identifiers.
hydration records the requested `t:tmux_server:hydration/0` strategy; source_calls
shows which commands actually ran, including any schema-driven fallback.
