fantasy_craft/scene/
scene_format.rs1use serde::Deserialize;
2use serde_json::Value;
3use std::collections::HashMap;
4
5#[derive(Deserialize, Debug)]
6pub struct EntityData {
7 pub id: String,
8
9 #[serde(default)]
10 pub components: HashMap<String, Value>
11}
12
13#[derive(Deserialize, Debug)]
14pub struct ImportData {
15 pub import: String
16}
17
18#[derive(Deserialize, Debug)]
19#[serde(untagged)]
20pub enum SceneEntry {
21 Entity(EntityData),
22 Import(ImportData)
23}
24
25#[derive(Deserialize, Debug)]
26pub struct SceneFile {
27 pub entities: Vec<SceneEntry>
28}