/// Identity of the bytes being lexed. Threaded through every emitted `Span`
/// (via `path`) and consulted by callers that need to resolve relative paths
/// (`origin`). Cheap to clone: `path` is `Arc<str>`, `origin` is small.
/// Where the source bytes were obtained. Determines what callers can do with
/// the document beyond display:
///
/// - `File`: parent dir is known, so relative `file=...` directives resolve;
/// on-disk content can be re-read; safe to cache by `(path, mtime)`.
/// - `Stdin`: one-shot, no parent dir, no cache.
/// - `Inline`: tests / REPL / hard-coded snippet; `path` is a synthetic name.
/// - `Memory`: LSP-style unsaved buffer; `version` is the source of truth,
/// not the filesystem.