#![expect(
clippy::disallowed_types,
reason = "adjudicated free-form JSON slots: serde_json::Value is workspace-banned (#1694); a generated carrier exists only where the spec leaves the slot open, and each adjudicated field's NOTE names its citation"
)]
use crate::v1_1::bmm::core::bmm_class::BmmClass;
use crate::v1_1::bmm::core::bmm_enumeration_integer::BmmEnumerationInteger;
use crate::v1_1::bmm::core::bmm_enumeration_string::BmmEnumerationString;
use crate::v1_1::bmm::core::bmm_package::BmmPackage;
use crate::v1_1::bmm::core::bmm_property::BmmProperty;
use crate::v1_1::bmm::core::bmm_type::BmmType;
#[doc(alias = "BMM_ENUMERATION")]
#[derive(Debug, Clone, PartialEq)]
pub struct BmmEnumerationData {
pub documentation: Option<String>,
pub name: String,
pub ancestors: Option<std::collections::BTreeMap<String, BmmClass>>,
pub package: BmmPackage,
pub properties: Option<std::collections::BTreeMap<String, BmmProperty<BmmType>>>,
pub source_schema_id: String,
pub immediate_descendants: Option<Vec<String>>,
pub is_abstract: bool,
pub is_primitive_type: bool,
pub is_override: bool,
pub item_names: Option<Vec<String>>,
pub item_values: Option<Vec<serde_json::Value>>,
pub underlying_type_name: String,
}
#[doc(alias = "BMM_ENUMERATION")]
#[derive(Debug, Clone, PartialEq)]
pub enum BmmEnumeration {
BmmEnumerationInteger(BmmEnumerationInteger),
BmmEnumerationString(BmmEnumerationString),
BmmEnumeration(BmmEnumerationData),
}