Server, session, window, pane
open! returns a closeable Java server client for an explicit socket.
snapshot! acquires a graph of persistent maps. A snapshot contains
sessions; sessions contain window placements; windows contain panes.
data/windows and data/panes traverse that capture
without another tmux command. Ordinary keyword lookup reads its scalar fields.
Maps retain an opaque Java handle at :tmux/ref. Pass that reference to an
effect such as rename!. Editing an ID in a map changes the map;
it does not change the target authenticated by its reference. The old map
keeps its earlier name after a rename. refresh! acquires a new
observation.
A linked window can occur in several sessions. same-entity?
compares physical identity; same-link? also compares its placement.
Keep input order and repeated placements when processing the graph.
Use native collection functions to filter captured values. When a Java
FilterExpr already exists, matching adapts it to a Clojure
transducer or lazy sequence. exactly-one checks cardinality before an
effect. data removes operational references for detached EDN export.
The quickstart demonstrates these operations. The captured-value reference lists the keys; captures and effects explains ownership, lazy processing and recovery.