1use sim_citizen_derive::Citizen;
2use sim_kernel::{CapabilityName, Symbol};
3
4#[derive(Clone, Debug, PartialEq, Citizen)]
12#[citizen(symbol = "skill/Card", version = 1)]
13pub struct SkillCardDescriptor {
14 pub id: String,
16 pub symbol: Symbol,
18 pub title: String,
20 pub description: String,
22 pub roles: Vec<Symbol>,
24 pub capabilities: Vec<CapabilityName>,
26 pub transport_id: String,
28 pub transport_kind: String,
30 pub operation: String,
32}
33
34impl Default for SkillCardDescriptor {
35 fn default() -> Self {
36 Self {
37 id: "citizen-skill".to_owned(),
38 symbol: Symbol::qualified("skill", "citizen-skill"),
39 title: "Citizen Skill".to_owned(),
40 description: "Citizen fixture skill descriptor".to_owned(),
41 roles: vec![Symbol::new("tool")],
42 capabilities: vec![CapabilityName::new("skill.call.citizen-skill")],
43 transport_id: "fixture".to_owned(),
44 transport_kind: "fixture".to_owned(),
45 operation: "citizen-skill".to_owned(),
46 }
47 }
48}
49
50pub fn skill_card_descriptor_class_symbol() -> Symbol {
52 Symbol::qualified("skill", "Card")
53}