use serde::{Deserialize, Serialize};
use weaver_core::{DvrPath, EntityId, TagId, Vec3};
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct DreamletFrame {
pub actor_id: EntityId,
pub tick: u64,
pub active_count: u32,
pub superposed_count: u32,
pub cluster_center_ws: Vec3,
pub cluster_velocity_ws: Vec3,
pub shell_compression: f32,
pub particle_density: f32,
pub orbit_bias: f32,
pub trail_bias: f32,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct PresentationTagOverride {
pub tag_id: TagId,
pub strength: f32,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
pub struct PresentationFrame {
pub actor_id: EntityId,
pub tick: u64,
pub dvr_path: DvrPath,
pub roughness_bias: f32,
pub emissive_bias: f32,
pub fresnel_bias: f32,
pub anisotropy_bias: f32,
pub opacity_fragmentation: f32,
pub normal_coherence: f32,
pub property_tag_overrides: Vec<PresentationTagOverride>,
}