use serde::{Deserialize, Serialize};
use serde_json::Number;
use super::basic_members::BasicMembers;
use super::custom_properties::CustomProperties;
use super::property::Property;
#[derive(Serialize, Deserialize, Debug)]
pub struct Prototype {
#[serde(flatten)]
pub basic: BasicMembers,
pub visibility: Option<Vec<String>>,
pub parent: Option<String>,
pub r#abstract: Option<bool>,
pub typename: Option<String>,
pub instance_limit: Option<Number>,
pub deprecated: bool,
pub properties: Vec<Property>,
pub custom_properties: Option<CustomProperties>,
}