#![allow(dead_code)]
use serde::Deserialize;
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct Game {
pub id: String,
pub name: String,
#[serde(default)]
pub manufacturer: Option<String>,
#[serde(default)]
pub year: Option<u16>,
#[serde(default, rename = "type")]
pub game_type: Option<String>,
#[serde(default)]
pub theme: Vec<String>,
#[serde(default)]
pub updated_at: Option<i64>,
#[serde(default)]
pub table_files: Vec<TableFile>,
#[serde(default)]
pub rom_files: Vec<RomFile>,
#[serde(default, rename = "b2sFiles")]
pub b2s_files: Vec<ResourceFile>,
#[serde(default, rename = "pupPackFiles")]
pub pup_pack_files: Vec<ResourceFile>,
#[serde(default)]
pub alt_sound_files: Vec<ResourceFile>,
#[serde(default)]
pub alt_color_files: Vec<ResourceFile>,
#[serde(default)]
pub wheel_art_files: Vec<ResourceFile>,
#[serde(default)]
pub topper_files: Vec<ResourceFile>,
#[serde(default)]
pub pov_files: Vec<ResourceFile>,
#[serde(default)]
pub media_pack_files: Vec<ResourceFile>,
#[serde(default)]
pub rule_files: Vec<ResourceFile>,
#[serde(default)]
pub sound_files: Vec<ResourceFile>,
#[serde(default)]
pub tutorial_files: Vec<ResourceFile>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct ResourceFile {
pub id: String,
#[serde(default)]
pub version: Option<String>,
#[serde(default)]
pub authors: Vec<String>,
#[serde(default)]
pub urls: Vec<ResourceUrl>,
#[serde(default)]
pub features: Vec<String>,
#[serde(default)]
pub updated_at: Option<i64>,
#[serde(default)]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct TableFile {
pub id: String,
#[serde(default)]
pub table_format: Option<String>,
#[serde(default)]
pub version: Option<String>,
#[serde(default)]
pub authors: Vec<String>,
#[serde(default)]
pub urls: Vec<ResourceUrl>,
#[serde(default)]
pub features: Vec<String>,
#[serde(default)]
pub updated_at: Option<i64>,
#[serde(default)]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
#[serde(rename_all = "camelCase")]
pub struct RomFile {
pub id: String,
#[serde(default)]
pub version: Option<String>,
#[serde(default)]
pub authors: Vec<String>,
#[serde(default)]
pub urls: Vec<ResourceUrl>,
#[serde(default)]
pub features: Vec<String>,
#[serde(default)]
pub updated_at: Option<i64>,
#[serde(default)]
pub comment: Option<String>,
}
#[derive(Debug, Clone, Deserialize)]
pub struct ResourceUrl {
pub url: String,
#[serde(default)]
pub broken: Option<bool>,
}