feat(engine): retire D-078 overheard conversation system (#848)
Per R-012: delete conversation.rs, both overheard content files, and remove all 6 wire-up points (social_plugin, bridge/types, monologue, voice/integration). Protocol version 22 → 23. Scope confirmed by #842 audit — npc/ and content/global/ untouched. Surviving NPC components (NpcName, NpcColorIndex, NpcConversation) migrated to simulation/npc_components.rs for use by D-080 knowledge propagation. Also applies pre-existing cargo fmt debt (names.rs and 4 others). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -279,18 +279,14 @@ fn corp_eligible(corp: &Corp, template_scale: &str, template_corridor: &str) ->
|
||||
|
||||
// Match sector to corridor
|
||||
let sector = corp.geographic_sector.as_deref().unwrap_or("core");
|
||||
let corridor_matches_sector = match template_corridor {
|
||||
match template_corridor {
|
||||
"north_reach" | "north_reach/compact" => sector == "north_reach",
|
||||
"south_reach" => sector == "south_reach",
|
||||
"west_reach" | "west_reach/compact" => sector == "west_reach",
|
||||
"east_reach" | "inner_corridor/east_reach" => {
|
||||
sector == "east_reach" || sector == "core"
|
||||
}
|
||||
"east_reach" | "inner_corridor/east_reach" => sector == "east_reach" || sector == "core",
|
||||
"frontier" => sector == "deep_frontier",
|
||||
_ => false,
|
||||
};
|
||||
|
||||
corridor_matches_sector
|
||||
}
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -308,13 +304,7 @@ fn scale_abbrev(scale_tier: &str) -> &'static str {
|
||||
|
||||
fn to_slug(s: &str) -> String {
|
||||
s.chars()
|
||||
.map(|c| {
|
||||
if c.is_ascii_alphanumeric() {
|
||||
c
|
||||
} else {
|
||||
'-'
|
||||
}
|
||||
})
|
||||
.map(|c| if c.is_ascii_alphanumeric() { c } else { '-' })
|
||||
.collect::<String>()
|
||||
.split('-')
|
||||
.filter(|p| !p.is_empty())
|
||||
@@ -371,8 +361,16 @@ fn generate_pair(
|
||||
valid_commodities: &BTreeSet<String>,
|
||||
) -> Option<GeneratedPair> {
|
||||
let corridor = parse_template_corridor(&template.naming_pattern);
|
||||
let halo_bid = halo_id(&corp.corp_id, &template.archetype_group, &template.scale_tier);
|
||||
let vol_bid = volume_id(&corp.corp_id, &template.archetype_group, &template.scale_tier);
|
||||
let halo_bid = halo_id(
|
||||
&corp.corp_id,
|
||||
&template.archetype_group,
|
||||
&template.scale_tier,
|
||||
);
|
||||
let vol_bid = volume_id(
|
||||
&corp.corp_id,
|
||||
&template.archetype_group,
|
||||
&template.scale_tier,
|
||||
);
|
||||
|
||||
let halo_name = names::generate_halo_name(rng, corridor, &template.brand_category);
|
||||
let vol_name = names::generate_volume_name(rng, corridor, &template.brand_category);
|
||||
@@ -493,16 +491,16 @@ fn round2(v: f64) -> f64 {
|
||||
// Output serialization
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
fn write_output(
|
||||
path: &PathBuf,
|
||||
products: &[BrandProduct],
|
||||
inputs: &[BrandInput],
|
||||
) {
|
||||
fn write_output(path: &PathBuf, products: &[BrandProduct], inputs: &[BrandInput]) {
|
||||
let mut out = String::new();
|
||||
out.push_str("# Generated Minor Brand Products — The Settled Reach\n");
|
||||
out.push_str("# Auto-generated by generate_brands binary. Do not hand-edit.\n");
|
||||
out.push_str("# Re-run: tooling/generate-brands\n");
|
||||
out.push_str(&format!("# Total: {} brand_products, {} brand_inputs\n\n", products.len(), inputs.len()));
|
||||
out.push_str(&format!(
|
||||
"# Total: {} brand_products, {} brand_inputs\n\n",
|
||||
products.len(),
|
||||
inputs.len()
|
||||
));
|
||||
|
||||
for p in products {
|
||||
out.push_str("[[brand_products]]\n");
|
||||
@@ -524,7 +522,10 @@ fn write_output(
|
||||
out.push_str(&format!("origin_system = {:?}\n", sys));
|
||||
}
|
||||
out.push_str(&format!("terroir_locked = {}\n", p.terroir_locked));
|
||||
out.push_str(&format!("currency_denomination = {:?}\n", p.currency_denomination));
|
||||
out.push_str(&format!(
|
||||
"currency_denomination = {:?}\n",
|
||||
p.currency_denomination
|
||||
));
|
||||
out.push_str(&format!("shadow_viable = {}\n", p.shadow_viable));
|
||||
out.push_str(&format!("brand_tier = {:?}\n", p.brand_tier));
|
||||
if let Some(ref hid) = p.halo_brand_id {
|
||||
@@ -578,7 +579,10 @@ fn print_coverage(products: &[BrandProduct]) {
|
||||
let min_per_corp = by_corp.values().min().copied().unwrap_or(0);
|
||||
let max_per_corp = by_corp.values().max().copied().unwrap_or(0);
|
||||
println!(" Corps covered: {}", by_corp.len());
|
||||
println!(" Brands per corp: min={} max={}", min_per_corp, max_per_corp);
|
||||
println!(
|
||||
" Brands per corp: min={} max={}",
|
||||
min_per_corp, max_per_corp
|
||||
);
|
||||
}
|
||||
|
||||
// ---------------------------------------------------------------------------
|
||||
@@ -628,7 +632,11 @@ fn main() {
|
||||
println!(" [2/5] Loading corporations and commodities...");
|
||||
let corps = load_corps(&conn);
|
||||
let valid_commodities = load_valid_commodity_ids(&conn);
|
||||
println!(" {} corps, {} valid commodities", corps.len(), valid_commodities.len());
|
||||
println!(
|
||||
" {} corps, {} valid commodities",
|
||||
corps.len(),
|
||||
valid_commodities.len()
|
||||
);
|
||||
|
||||
// Generate brand pairs
|
||||
println!(" [3/5] Generating brand pairs...");
|
||||
@@ -640,12 +648,24 @@ fn main() {
|
||||
|
||||
for (template_key, template) in &templates {
|
||||
for corp in &corps {
|
||||
if !corp_eligible(corp, &template.scale_tier, parse_template_corridor(&template.naming_pattern)) {
|
||||
if !corp_eligible(
|
||||
corp,
|
||||
&template.scale_tier,
|
||||
parse_template_corridor(&template.naming_pattern),
|
||||
) {
|
||||
continue;
|
||||
}
|
||||
|
||||
let halo_bid = halo_id(&corp.corp_id, &template.archetype_group, &template.scale_tier);
|
||||
let vol_bid = volume_id(&corp.corp_id, &template.archetype_group, &template.scale_tier);
|
||||
let halo_bid = halo_id(
|
||||
&corp.corp_id,
|
||||
&template.archetype_group,
|
||||
&template.scale_tier,
|
||||
);
|
||||
let vol_bid = volume_id(
|
||||
&corp.corp_id,
|
||||
&template.archetype_group,
|
||||
&template.scale_tier,
|
||||
);
|
||||
|
||||
// Skip if IDs already generated (name-collision guard)
|
||||
if seen_ids.contains(&halo_bid) || seen_ids.contains(&vol_bid) {
|
||||
@@ -653,7 +673,9 @@ fn main() {
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Some(pair) = generate_pair(&mut rng, corp, template_key, template, &valid_commodities) {
|
||||
if let Some(pair) =
|
||||
generate_pair(&mut rng, corp, template_key, template, &valid_commodities)
|
||||
{
|
||||
seen_ids.insert(halo_bid);
|
||||
seen_ids.insert(vol_bid);
|
||||
products.push(pair.halo);
|
||||
@@ -664,7 +686,11 @@ fn main() {
|
||||
}
|
||||
}
|
||||
|
||||
println!(" {} brand_products generated ({} skipped)", products.len(), skipped);
|
||||
println!(
|
||||
" {} brand_products generated ({} skipped)",
|
||||
products.len(),
|
||||
skipped
|
||||
);
|
||||
|
||||
// Gap-fill: if under target, add more by re-applying reach_wide templates
|
||||
// with a counter suffix to avoid ID collisions.
|
||||
@@ -679,7 +705,8 @@ fn main() {
|
||||
let mut template_idx = 0usize;
|
||||
|
||||
while products.len() < cli.min_brands && !reach_wide_templates.is_empty() {
|
||||
let (template_key, template) = reach_wide_templates[template_idx % reach_wide_templates.len()];
|
||||
let (template_key, template) =
|
||||
reach_wide_templates[template_idx % reach_wide_templates.len()];
|
||||
let corp = &corps[counter % corps.len()];
|
||||
|
||||
counter += 1;
|
||||
@@ -704,7 +731,9 @@ fn main() {
|
||||
continue;
|
||||
}
|
||||
|
||||
if let Some(pair) = generate_pair(&mut rng, corp, template_key, template, &valid_commodities) {
|
||||
if let Some(pair) =
|
||||
generate_pair(&mut rng, corp, template_key, template, &valid_commodities)
|
||||
{
|
||||
let mut halo = pair.halo;
|
||||
let mut volume = pair.volume;
|
||||
halo.brand_product_id = halo_bid.clone();
|
||||
@@ -713,8 +742,12 @@ fn main() {
|
||||
|
||||
let mut inputs_halo = pair.inputs_halo;
|
||||
let mut inputs_volume = pair.inputs_volume;
|
||||
for i in &mut inputs_halo { i.brand_product_id = halo_bid.clone(); }
|
||||
for i in &mut inputs_volume { i.brand_product_id = vol_bid.clone(); }
|
||||
for i in &mut inputs_halo {
|
||||
i.brand_product_id = halo_bid.clone();
|
||||
}
|
||||
for i in &mut inputs_volume {
|
||||
i.brand_product_id = vol_bid.clone();
|
||||
}
|
||||
|
||||
seen_ids.insert(halo_bid);
|
||||
seen_ids.insert(vol_bid);
|
||||
@@ -741,7 +774,11 @@ fn main() {
|
||||
// Write output
|
||||
println!("\n [5/5] Writing output...");
|
||||
write_output(&output_path, &products, &inputs);
|
||||
println!(" {} brand_products, {} brand_inputs", products.len(), inputs.len());
|
||||
println!(
|
||||
" {} brand_products, {} brand_inputs",
|
||||
products.len(),
|
||||
inputs.len()
|
||||
);
|
||||
println!(" Output: {}", output_path.display());
|
||||
println!(" Done.\n");
|
||||
}
|
||||
|
||||
@@ -13,60 +13,321 @@ use rand_chacha::ChaCha8Rng;
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const CORE_NAMES: &[&str] = &[
|
||||
"Alvarez", "Benoit", "Carvalho", "Durand", "Eriksen", "Fournier", "Gao", "Hartmann",
|
||||
"Ishida", "Johansson", "Kirchner", "Lemaire", "Moreau", "Nakamura", "Olsson", "Pelletier",
|
||||
"Richter", "Saito", "Torres", "Ueda", "Vasquez", "Werner", "Xu", "Yamada", "Zhou",
|
||||
"Andersen", "Beaumont", "Costa", "Delacroix", "Engel", "Fujita", "Gutierrez", "Hayashi",
|
||||
"Ibarra", "Jensen", "Klein", "Laurent", "Mercier", "Novak", "Ortiz", "Park", "Reuter",
|
||||
"Suzuki", "Takahashi", "Ulrich", "Valentin", "Wagner", "Xie", "Yilmaz", "Zhang",
|
||||
"Alvarez",
|
||||
"Benoit",
|
||||
"Carvalho",
|
||||
"Durand",
|
||||
"Eriksen",
|
||||
"Fournier",
|
||||
"Gao",
|
||||
"Hartmann",
|
||||
"Ishida",
|
||||
"Johansson",
|
||||
"Kirchner",
|
||||
"Lemaire",
|
||||
"Moreau",
|
||||
"Nakamura",
|
||||
"Olsson",
|
||||
"Pelletier",
|
||||
"Richter",
|
||||
"Saito",
|
||||
"Torres",
|
||||
"Ueda",
|
||||
"Vasquez",
|
||||
"Werner",
|
||||
"Xu",
|
||||
"Yamada",
|
||||
"Zhou",
|
||||
"Andersen",
|
||||
"Beaumont",
|
||||
"Costa",
|
||||
"Delacroix",
|
||||
"Engel",
|
||||
"Fujita",
|
||||
"Gutierrez",
|
||||
"Hayashi",
|
||||
"Ibarra",
|
||||
"Jensen",
|
||||
"Klein",
|
||||
"Laurent",
|
||||
"Mercier",
|
||||
"Novak",
|
||||
"Ortiz",
|
||||
"Park",
|
||||
"Reuter",
|
||||
"Suzuki",
|
||||
"Takahashi",
|
||||
"Ulrich",
|
||||
"Valentin",
|
||||
"Wagner",
|
||||
"Xie",
|
||||
"Yilmaz",
|
||||
"Zhang",
|
||||
];
|
||||
|
||||
const NORTH_REACH_NAMES: &[&str] = &[
|
||||
"Andersson", "Bjornsson", "Calloway", "Dalsgaard", "Eklund", "Falk", "Grimstad", "Hedlund",
|
||||
"Ivarsson", "Jonasson", "Kirkpatrick", "Lindqvist", "MacLeod", "Nordstrom", "Olafsson",
|
||||
"Pettersson", "Rehn", "Strandberg", "Thorsen", "Ulvskog", "Vikstrom", "Wahlberg", "Aberg",
|
||||
"Berglund", "Carlsen", "Dalgaard", "Engstrom", "Forsell", "Gustafsson", "Halvorsen",
|
||||
"Ingvarsson", "Jansson", "Knudsen", "Lundin", "MacPherson", "Nylund", "Ostergaard",
|
||||
"Palsson", "Rasmussen", "Sjoberg", "Toft", "Ulfsson", "Vestergaard", "Wiklund", "Aasen",
|
||||
"Brannstrom", "Dahl", "Eide", "Friberg", "Gren",
|
||||
"Andersson",
|
||||
"Bjornsson",
|
||||
"Calloway",
|
||||
"Dalsgaard",
|
||||
"Eklund",
|
||||
"Falk",
|
||||
"Grimstad",
|
||||
"Hedlund",
|
||||
"Ivarsson",
|
||||
"Jonasson",
|
||||
"Kirkpatrick",
|
||||
"Lindqvist",
|
||||
"MacLeod",
|
||||
"Nordstrom",
|
||||
"Olafsson",
|
||||
"Pettersson",
|
||||
"Rehn",
|
||||
"Strandberg",
|
||||
"Thorsen",
|
||||
"Ulvskog",
|
||||
"Vikstrom",
|
||||
"Wahlberg",
|
||||
"Aberg",
|
||||
"Berglund",
|
||||
"Carlsen",
|
||||
"Dalgaard",
|
||||
"Engstrom",
|
||||
"Forsell",
|
||||
"Gustafsson",
|
||||
"Halvorsen",
|
||||
"Ingvarsson",
|
||||
"Jansson",
|
||||
"Knudsen",
|
||||
"Lundin",
|
||||
"MacPherson",
|
||||
"Nylund",
|
||||
"Ostergaard",
|
||||
"Palsson",
|
||||
"Rasmussen",
|
||||
"Sjoberg",
|
||||
"Toft",
|
||||
"Ulfsson",
|
||||
"Vestergaard",
|
||||
"Wiklund",
|
||||
"Aasen",
|
||||
"Brannstrom",
|
||||
"Dahl",
|
||||
"Eide",
|
||||
"Friberg",
|
||||
"Gren",
|
||||
];
|
||||
|
||||
const SOUTH_REACH_NAMES: &[&str] = &[
|
||||
"Adamski", "Baranov", "Chernov", "Dubois", "Egorov", "Filipov", "Gromov", "Horvat",
|
||||
"Ivanova", "Jankovic", "Kowalski", "Lazarev", "Morozov", "Novikov", "Ostrowski", "Petrov",
|
||||
"Reznik", "Sokolov", "Tkachenko", "Uvarov", "Volkov", "Wojcik", "Yakimov", "Zheng",
|
||||
"Babic", "Chernyshev", "Dragunov", "Fedorov", "Grushevsky", "Havel", "Ito", "Jovanovic",
|
||||
"Katsaros", "Lebedev", "Mazur", "Nemec", "Ochoa", "Popov", "Radic", "Smirnov", "Tanaka",
|
||||
"Urasawa", "Vasiliev", "Watanabe", "Xiang", "Yegorov", "Zaytsev", "Borysko", "Chen",
|
||||
"Adamski",
|
||||
"Baranov",
|
||||
"Chernov",
|
||||
"Dubois",
|
||||
"Egorov",
|
||||
"Filipov",
|
||||
"Gromov",
|
||||
"Horvat",
|
||||
"Ivanova",
|
||||
"Jankovic",
|
||||
"Kowalski",
|
||||
"Lazarev",
|
||||
"Morozov",
|
||||
"Novikov",
|
||||
"Ostrowski",
|
||||
"Petrov",
|
||||
"Reznik",
|
||||
"Sokolov",
|
||||
"Tkachenko",
|
||||
"Uvarov",
|
||||
"Volkov",
|
||||
"Wojcik",
|
||||
"Yakimov",
|
||||
"Zheng",
|
||||
"Babic",
|
||||
"Chernyshev",
|
||||
"Dragunov",
|
||||
"Fedorov",
|
||||
"Grushevsky",
|
||||
"Havel",
|
||||
"Ito",
|
||||
"Jovanovic",
|
||||
"Katsaros",
|
||||
"Lebedev",
|
||||
"Mazur",
|
||||
"Nemec",
|
||||
"Ochoa",
|
||||
"Popov",
|
||||
"Radic",
|
||||
"Smirnov",
|
||||
"Tanaka",
|
||||
"Urasawa",
|
||||
"Vasiliev",
|
||||
"Watanabe",
|
||||
"Xiang",
|
||||
"Yegorov",
|
||||
"Zaytsev",
|
||||
"Borysko",
|
||||
"Chen",
|
||||
"Dimitrov",
|
||||
];
|
||||
|
||||
const WEST_REACH_NAMES: &[&str] = &[
|
||||
"Albrecht", "Baumann", "Christensen", "Dietrich", "Eisenberg", "Fischer", "Gruber",
|
||||
"Hoffmann", "Ingolstadt", "Jaeger", "Kessler", "Lehmann", "Mueller", "Neumann", "Obermann",
|
||||
"Pfeiffer", "Quandt", "Roth", "Schaefer", "Thiel", "Urban", "Vogt", "Weidenfeld",
|
||||
"Ziegler", "Becker", "Claussen", "Dorfmann", "Eberhardt", "Fleischer", "Gerstner", "Haber",
|
||||
"Imhof", "Jung", "Kraemer", "Linden", "Metzger", "Niedermann", "Opitz", "Preuss", "Raabe",
|
||||
"Steinbach", "Trautmann", "Unger", "Vollmer", "Winterberg", "Zahn", "Auerbach", "Bruckner",
|
||||
"Dahlem", "Eckhardt",
|
||||
"Albrecht",
|
||||
"Baumann",
|
||||
"Christensen",
|
||||
"Dietrich",
|
||||
"Eisenberg",
|
||||
"Fischer",
|
||||
"Gruber",
|
||||
"Hoffmann",
|
||||
"Ingolstadt",
|
||||
"Jaeger",
|
||||
"Kessler",
|
||||
"Lehmann",
|
||||
"Mueller",
|
||||
"Neumann",
|
||||
"Obermann",
|
||||
"Pfeiffer",
|
||||
"Quandt",
|
||||
"Roth",
|
||||
"Schaefer",
|
||||
"Thiel",
|
||||
"Urban",
|
||||
"Vogt",
|
||||
"Weidenfeld",
|
||||
"Ziegler",
|
||||
"Becker",
|
||||
"Claussen",
|
||||
"Dorfmann",
|
||||
"Eberhardt",
|
||||
"Fleischer",
|
||||
"Gerstner",
|
||||
"Haber",
|
||||
"Imhof",
|
||||
"Jung",
|
||||
"Kraemer",
|
||||
"Linden",
|
||||
"Metzger",
|
||||
"Niedermann",
|
||||
"Opitz",
|
||||
"Preuss",
|
||||
"Raabe",
|
||||
"Steinbach",
|
||||
"Trautmann",
|
||||
"Unger",
|
||||
"Vollmer",
|
||||
"Winterberg",
|
||||
"Zahn",
|
||||
"Auerbach",
|
||||
"Bruckner",
|
||||
"Dahlem",
|
||||
"Eckhardt",
|
||||
];
|
||||
|
||||
const EAST_REACH_NAMES: &[&str] = &[
|
||||
"Aquino", "Bautista", "Cruz", "Dalisay", "Espiritu", "Flores", "Garcia", "Hernandez",
|
||||
"Ilagan", "Jeon", "Kim", "Lim", "Magalang", "Navarro", "Ocampo", "Park", "Quijano",
|
||||
"Reyes", "Santos", "Tan", "Uy", "Villanueva", "Wong", "Yoo", "Aguilar", "Buenaventura",
|
||||
"Castillo", "Dizon", "Enriquez", "Fernandez", "Gonzales", "Hwang", "Ignacio", "Jeong",
|
||||
"Kwon", "Lee", "Marasigan", "Nakamura", "Oh", "Perez", "Ramos", "Son", "Tolentino",
|
||||
"Umali", "Valdez", "Yun", "Zamora", "Baek", "Choi", "Dela Cruz",
|
||||
"Aquino",
|
||||
"Bautista",
|
||||
"Cruz",
|
||||
"Dalisay",
|
||||
"Espiritu",
|
||||
"Flores",
|
||||
"Garcia",
|
||||
"Hernandez",
|
||||
"Ilagan",
|
||||
"Jeon",
|
||||
"Kim",
|
||||
"Lim",
|
||||
"Magalang",
|
||||
"Navarro",
|
||||
"Ocampo",
|
||||
"Park",
|
||||
"Quijano",
|
||||
"Reyes",
|
||||
"Santos",
|
||||
"Tan",
|
||||
"Uy",
|
||||
"Villanueva",
|
||||
"Wong",
|
||||
"Yoo",
|
||||
"Aguilar",
|
||||
"Buenaventura",
|
||||
"Castillo",
|
||||
"Dizon",
|
||||
"Enriquez",
|
||||
"Fernandez",
|
||||
"Gonzales",
|
||||
"Hwang",
|
||||
"Ignacio",
|
||||
"Jeong",
|
||||
"Kwon",
|
||||
"Lee",
|
||||
"Marasigan",
|
||||
"Nakamura",
|
||||
"Oh",
|
||||
"Perez",
|
||||
"Ramos",
|
||||
"Son",
|
||||
"Tolentino",
|
||||
"Umali",
|
||||
"Valdez",
|
||||
"Yun",
|
||||
"Zamora",
|
||||
"Baek",
|
||||
"Choi",
|
||||
"Dela Cruz",
|
||||
];
|
||||
|
||||
const FRONTIER_NAMES: &[&str] = &[
|
||||
"Adeyemi", "Bergstrom", "Chandra", "Duval", "Emeka", "Fonseca", "Gupta", "Hassan",
|
||||
"Ibrahim", "Jansson", "Kovac", "Liu", "Martinez", "Nkosi", "Okafor", "Patel", "Quinn",
|
||||
"Rodriguez", "Sousa", "Thorne", "Uddin", "Varga", "Wu", "Xiong", "Yoshida", "Zhao",
|
||||
"Abara", "Beaumont", "Cardenas", "Doyle", "Ekwueme", "Ferreira", "Gomes", "Henriksen",
|
||||
"Idris", "Juma", "Kato", "Larsen", "Morales", "Ndlovu", "Osei", "Petrov", "Ruiz",
|
||||
"Singh", "Tavares", "Uchida", "Volkov", "Wang", "Yang", "Zaman",
|
||||
"Adeyemi",
|
||||
"Bergstrom",
|
||||
"Chandra",
|
||||
"Duval",
|
||||
"Emeka",
|
||||
"Fonseca",
|
||||
"Gupta",
|
||||
"Hassan",
|
||||
"Ibrahim",
|
||||
"Jansson",
|
||||
"Kovac",
|
||||
"Liu",
|
||||
"Martinez",
|
||||
"Nkosi",
|
||||
"Okafor",
|
||||
"Patel",
|
||||
"Quinn",
|
||||
"Rodriguez",
|
||||
"Sousa",
|
||||
"Thorne",
|
||||
"Uddin",
|
||||
"Varga",
|
||||
"Wu",
|
||||
"Xiong",
|
||||
"Yoshida",
|
||||
"Zhao",
|
||||
"Abara",
|
||||
"Beaumont",
|
||||
"Cardenas",
|
||||
"Doyle",
|
||||
"Ekwueme",
|
||||
"Ferreira",
|
||||
"Gomes",
|
||||
"Henriksen",
|
||||
"Idris",
|
||||
"Juma",
|
||||
"Kato",
|
||||
"Larsen",
|
||||
"Morales",
|
||||
"Ndlovu",
|
||||
"Osei",
|
||||
"Petrov",
|
||||
"Ruiz",
|
||||
"Singh",
|
||||
"Tavares",
|
||||
"Uchida",
|
||||
"Volkov",
|
||||
"Wang",
|
||||
"Yang",
|
||||
"Zaman",
|
||||
];
|
||||
|
||||
fn names_for_corridor(corridor: &str) -> &'static [&'static str] {
|
||||
@@ -85,83 +346,206 @@ fn names_for_corridor(corridor: &str) -> &'static [&'static str] {
|
||||
// ---------------------------------------------------------------------------
|
||||
|
||||
const TERROIR_HALO: &[&str] = &[
|
||||
"Reserve", "Single", "Estate", "Vintage", "Heritage", "Grand", "Limited", "Prestige",
|
||||
"Signature", "Cellar", "Select", "Cru", "Premier", "Old", "Aged",
|
||||
"Reserve",
|
||||
"Single",
|
||||
"Estate",
|
||||
"Vintage",
|
||||
"Heritage",
|
||||
"Grand",
|
||||
"Limited",
|
||||
"Prestige",
|
||||
"Signature",
|
||||
"Cellar",
|
||||
"Select",
|
||||
"Cru",
|
||||
"Premier",
|
||||
"Old",
|
||||
"Aged",
|
||||
];
|
||||
|
||||
const TERROIR_VOLUME: &[&str] = &[
|
||||
"Standard", "Export", "Blend", "Classic", "Field", "Ordinary", "Running", "Table",
|
||||
"Regular", "Common", "House", "Station", "Corridor", "Transit",
|
||||
"Standard", "Export", "Blend", "Classic", "Field", "Ordinary", "Running", "Table", "Regular",
|
||||
"Common", "House", "Station", "Corridor", "Transit",
|
||||
];
|
||||
|
||||
const HERITAGE_CRAFT_HALO: &[&str] = &[
|
||||
"Heritage", "Limited", "Artisan", "Master", "Guild", "Prestige", "Premium", "Classic",
|
||||
"Signature", "Original", "Bespoke", "Traditional", "First",
|
||||
"Heritage",
|
||||
"Limited",
|
||||
"Artisan",
|
||||
"Master",
|
||||
"Guild",
|
||||
"Prestige",
|
||||
"Premium",
|
||||
"Classic",
|
||||
"Signature",
|
||||
"Original",
|
||||
"Bespoke",
|
||||
"Traditional",
|
||||
"First",
|
||||
];
|
||||
|
||||
const HERITAGE_CRAFT_VOLUME: &[&str] = &[
|
||||
"Standard", "Classic", "Working", "Everyday", "Regular", "Plain", "Field", "Grade",
|
||||
"Basic", "Workshop", "Studio", "Common",
|
||||
"Standard", "Classic", "Working", "Everyday", "Regular", "Plain", "Field", "Grade", "Basic",
|
||||
"Workshop", "Studio", "Common",
|
||||
];
|
||||
|
||||
const TECH_PREMIUM_HALO: &[&str] = &[
|
||||
"Elite", "Pro", "Advanced", "Precision", "Superior", "Grand", "Signature", "First",
|
||||
"Prime", "Expert", "Master", "Apex", "Summit",
|
||||
"Elite",
|
||||
"Pro",
|
||||
"Advanced",
|
||||
"Precision",
|
||||
"Superior",
|
||||
"Grand",
|
||||
"Signature",
|
||||
"First",
|
||||
"Prime",
|
||||
"Expert",
|
||||
"Master",
|
||||
"Apex",
|
||||
"Summit",
|
||||
];
|
||||
|
||||
const TECH_PREMIUM_VOLUME: &[&str] = &[
|
||||
"Standard", "Series", "Base", "Classic", "Regular", "Field", "Grade", "Value",
|
||||
"Essential", "Core", "Basic",
|
||||
"Standard",
|
||||
"Series",
|
||||
"Base",
|
||||
"Classic",
|
||||
"Regular",
|
||||
"Field",
|
||||
"Grade",
|
||||
"Value",
|
||||
"Essential",
|
||||
"Core",
|
||||
"Basic",
|
||||
];
|
||||
|
||||
const CULTURAL_HALO: &[&str] = &[
|
||||
"Archive", "Heritage", "Classic", "Definitive", "Prestige", "Limited", "Master",
|
||||
"Collected", "Curated", "Canonical", "Flagship", "Grand",
|
||||
"Archive",
|
||||
"Heritage",
|
||||
"Classic",
|
||||
"Definitive",
|
||||
"Prestige",
|
||||
"Limited",
|
||||
"Master",
|
||||
"Collected",
|
||||
"Curated",
|
||||
"Canonical",
|
||||
"Flagship",
|
||||
"Grand",
|
||||
];
|
||||
|
||||
const CULTURAL_VOLUME: &[&str] = &[
|
||||
"Standard", "Classic", "Essential", "Value", "Regular", "Base", "Field",
|
||||
"Running", "Everyday", "Popular",
|
||||
"Standard",
|
||||
"Classic",
|
||||
"Essential",
|
||||
"Value",
|
||||
"Regular",
|
||||
"Base",
|
||||
"Field",
|
||||
"Running",
|
||||
"Everyday",
|
||||
"Popular",
|
||||
];
|
||||
|
||||
const SERVICE_PREMIUM_HALO: &[&str] = &[
|
||||
"Premier", "Elite", "Priority", "Signature", "Prestige", "Grand", "First", "Select",
|
||||
"Platinum", "Gold", "Senior", "Executive",
|
||||
"Premier",
|
||||
"Elite",
|
||||
"Priority",
|
||||
"Signature",
|
||||
"Prestige",
|
||||
"Grand",
|
||||
"First",
|
||||
"Select",
|
||||
"Platinum",
|
||||
"Gold",
|
||||
"Senior",
|
||||
"Executive",
|
||||
];
|
||||
|
||||
const SERVICE_PREMIUM_VOLUME: &[&str] = &[
|
||||
"Standard", "Basic", "Classic", "Regular", "Field", "Value", "General", "Common",
|
||||
"Ordinary", "Essential",
|
||||
"Standard",
|
||||
"Basic",
|
||||
"Classic",
|
||||
"Regular",
|
||||
"Field",
|
||||
"Value",
|
||||
"General",
|
||||
"Common",
|
||||
"Ordinary",
|
||||
"Essential",
|
||||
];
|
||||
|
||||
const COMMODITY_BRANDED_HALO: &[&str] = &[
|
||||
"Original", "Select", "Premium", "Reserve", "Classic", "Heritage", "Signature",
|
||||
"Superior", "First", "Grade", "Certified",
|
||||
"Original",
|
||||
"Select",
|
||||
"Premium",
|
||||
"Reserve",
|
||||
"Classic",
|
||||
"Heritage",
|
||||
"Signature",
|
||||
"Superior",
|
||||
"First",
|
||||
"Grade",
|
||||
"Certified",
|
||||
];
|
||||
|
||||
const COMMODITY_BRANDED_VOLUME: &[&str] = &[
|
||||
"Standard", "Basic", "Regular", "Field", "Value", "Economy", "Bulk", "Run",
|
||||
"Common", "Grade", "Plain",
|
||||
"Standard", "Basic", "Regular", "Field", "Value", "Economy", "Bulk", "Run", "Common", "Grade",
|
||||
"Plain",
|
||||
];
|
||||
|
||||
const DESIGN_HERITAGE_HALO: &[&str] = &[
|
||||
"Heritage", "Limited", "Prestige", "Grand", "Signature", "Edition", "Series",
|
||||
"Classic", "Archive", "Collector", "Retrospective",
|
||||
"Heritage",
|
||||
"Limited",
|
||||
"Prestige",
|
||||
"Grand",
|
||||
"Signature",
|
||||
"Edition",
|
||||
"Series",
|
||||
"Classic",
|
||||
"Archive",
|
||||
"Collector",
|
||||
"Retrospective",
|
||||
];
|
||||
|
||||
const DESIGN_HERITAGE_VOLUME: &[&str] = &[
|
||||
"Standard", "Classic", "Regular", "Field", "Value", "Base", "Essential",
|
||||
"Running", "Contemporary", "Current",
|
||||
"Standard",
|
||||
"Classic",
|
||||
"Regular",
|
||||
"Field",
|
||||
"Value",
|
||||
"Base",
|
||||
"Essential",
|
||||
"Running",
|
||||
"Contemporary",
|
||||
"Current",
|
||||
];
|
||||
|
||||
const PLATFORM_CATALOGUE_HALO: &[&str] = &[
|
||||
"Premium", "Pro", "Plus", "Elite", "Advanced", "Signature", "Select", "Grand",
|
||||
"Unlimited", "Complete", "Full",
|
||||
"Premium",
|
||||
"Pro",
|
||||
"Plus",
|
||||
"Elite",
|
||||
"Advanced",
|
||||
"Signature",
|
||||
"Select",
|
||||
"Grand",
|
||||
"Unlimited",
|
||||
"Complete",
|
||||
"Full",
|
||||
];
|
||||
|
||||
const PLATFORM_CATALOGUE_VOLUME: &[&str] = &[
|
||||
"Standard", "Basic", "Classic", "Regular", "Field", "Value", "Entry", "Lite",
|
||||
"Essential", "Free",
|
||||
"Standard",
|
||||
"Basic",
|
||||
"Classic",
|
||||
"Regular",
|
||||
"Field",
|
||||
"Value",
|
||||
"Entry",
|
||||
"Lite",
|
||||
"Essential",
|
||||
"Free",
|
||||
];
|
||||
|
||||
fn halo_descriptors(brand_category: &str) -> &'static [&'static str] {
|
||||
|
||||
Reference in New Issue
Block a user