use myko::prelude::*;
use myko_macros::myko_item;
use crate::PrevisProcessTarget;
/// A cluster the operator may fire a capture on, mirrored into the cell by the
/// bridge so the browser never queries Pulse Cluster directly.
#[myko_item]
pub struct FrameCaptureTargetSummary {
/// Cluster name, also the entity id.
pub cluster_name: String,
/// Live generation/revision string as observed by the bridge.
#[serde(default)]
pub generation: String,
/// Whether the cluster is currently in a state that can accept a capture.
#[serde(default)]
pub capturable: bool,
/// Short reason shown when not capturable (e.g. "stopped", "locked").
#[serde(default)]
pub status: String,
/// Exact live previs processes. Control requests are fenced to this identity.
#[serde(default)]
pub previs_targets: Vec<PrevisProcessTarget>,
#[serde(default)]
pub updated_at_ms: u64,
}