microversus_codex 0.1.6

Types and definitions for interfacing with the microversus system
Documentation
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),
}