use crate::{EncounterResult, EventTag};
use serde::{Deserialize, Serialize};
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum OwnerDetails {
User { token: String },
Stakes { keys: Vec<String> },
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum TribeAction {
GetTribes,
CanCreate { owner: OwnerDetails },
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum LootAction {
GetResult {
encounter_id: String,
#[serde(skip_serializing_if = "Option::is_none")]
tags: Option<Vec<EventTag>>,
record_event: Option<bool>,
},
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum LoreAction {
Generate {
event_id: Option<String>,
lore_kind: LoreKind,
},
}
#[derive(Serialize, Deserialize, Debug, Clone)]
#[serde(tag = "type")]
pub enum LoreKind {
Encounter(EncounterResult),
}