use serde::{Deserialize, Serialize};
use std::collections::HashMap;

pub struct State {
    pub data: HashMap<String, serde_json::Value>,
}

impl State {
    pub fn new(data: HashMap<String, serde_json::Value>) -> Self {
        Self { data }
    }
}

pub struct TransitionParams {
    pub action: String,
    pub args: HashMap<String, serde_json::Value>,
    pub identity_subject: String,
    pub identity_roles: Vec<String>,
    pub giu_cost: i64,
}