weiss_core/effects/payload.rs
1use serde::{Deserialize, Serialize};
2
3use super::EffectSpec;
4
5/// Effect with resolved targets ready for execution.
6#[derive(Clone, Debug, Hash, Serialize, Deserialize)]
7pub struct EffectPayload {
8 /// Underlying effect specification.
9 pub spec: EffectSpec,
10 /// Resolved targets for this effect.
11 pub targets: Vec<crate::state::TargetRef>,
12 /// Source reference for source-relative effects.
13 #[serde(default)]
14 pub source_ref: Option<crate::state::TargetRef>,
15}