Files
Adminator 1e51ef7def Nachtrag: alle bisher untracked Ordner + hängende Änderungen mit-committen
- Konzept/, didaktik_geografie/, didaktik_simulation/, v2-modules/, v2-platform/
- 12 code-workspace-Files
- STATUS-*.md
- viele M/D/R-Änderungen an bereits getrackten Files
- .gitignore verstärkt: **/.humaninput/, **/secret_keys.txt

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-07-08 02:27:02 +02:00

267 lines
6.8 KiB
JSON

{
"_note": "Sprecher-Pool fuer die Funk-Pille. Pro Audio-ID festes Mapping. 8 Profile, davon 4 Pilot*innen rotierend ueber die 14 Helis (Heli-Key bestimmt zugewiesenen Pool-Eintrag).",
"speakers": {
"tower_f": {
"label": "Tower",
"role": "Tower-Lotsin",
"gender": "female",
"image": "img/speakers/tower_f.png"
},
"briefing_f": {
"label": "Briefing",
"role": "Briefing-Offizierin",
"gender": "female",
"image": "img/speakers/briefing_f.png"
},
"pilot_a_m": {
"label": "Pilot Hannes",
"role": "Pilot",
"gender": "male",
"image": "img/speakers/pilot_a_m.png"
},
"pilot_b_f": {
"label": "Pilotin Marlene",
"role": "Pilotin",
"gender": "female",
"image": "img/speakers/pilot_b_f.png"
},
"pilot_c_m": {
"label": "Pilot Stefan",
"role": "Pilot",
"gender": "male",
"image": "img/speakers/pilot_c_m.png"
},
"pilot_d_f": {
"label": "Pilotin Sarah",
"role": "Pilotin",
"gender": "female",
"image": "img/speakers/pilot_d_f.png"
},
"retter_m": {
"label": "Flugretter",
"role": "Bergrettung",
"gender": "male",
"image": "img/speakers/retter_m.png"
},
"sani_f": {
"label": "Sanitäterin",
"role": "Notfallsanitaeterin",
"gender": "female",
"image": "img/speakers/sani_f.png"
}
},
"_pilot_by_helikey": "Welcher Pilot*innen-Pool-Eintrag zu welchem Heli-Stuetzpunkt gehoert. Ab 2026-05-31: ALLE Stützpunkte sind Marlene (pilot_b_f) zugewiesen — konsistent mit Onboarding (Marlene = zentrale Chefpilotin/Mentorin). Die Profile pilot_a_m / pilot_c_m / pilot_d_f bleiben im System fuer spaetere Versionen mit erweiterter Pilot*innen-Vielfalt.",
"pilot_by_helikey": {
"c1": "pilot_b_f",
"c2": "pilot_b_f",
"c3": "pilot_b_f",
"c4": "pilot_b_f",
"c5": "pilot_b_f",
"c6": "pilot_b_f",
"c7": "pilot_b_f",
"c8": "pilot_b_f",
"c9": "pilot_b_f",
"c10": "pilot_b_f",
"c11": "pilot_b_f",
"c12": "pilot_b_f",
"c14": "pilot_b_f",
"c16": "pilot_b_f",
"ara": "pilot_b_f"
},
"_rules": "Erste passende Regel gewinnt. Die {pilot}-Variable wird via pilot_by_helikey aufgeloest, abhaengig von der Mission. Tower-Audios bekommen weiter ein wechselndes Label-Suffix (Innsbruck/Wien/Salzburg/...) — Bild bleibt aber immer tower_f.",
"rules": [
{
"match": "^r_mission_intro_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_tower\\d+$",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_success\\d?$",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_zwischenlandung_pflicht",
"speaker": "pilot_b_f",
"label": "Pilotin Marlene"
},
{
"match": "^r_start_erfolg",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_nachtrag_",
"speaker": "pilot_b_f",
"label": "Pilotin Marlene"
},
{
"match": "^r_mission_geo_",
"speaker": "briefing_f",
"label": "Briefing-Offizierin"
},
{
"match": "^r_mission_start_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_caution_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_patient_aboard_m$",
"speaker": "retter_m",
"label": "Flugretter"
},
{
"match": "^r_patient_aboard$",
"speaker": "sani_f",
"label": "Sanitäterin"
},
{
"match": "^r_kurs_klinik(_m)?$",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_mission_success$",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_mission_abort(_m)?$",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_im_zielgebiet(_m)?$",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_warteschleife(_m)?$",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_start_erfolg(_m)?$",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_tower_geo_",
"speaker": "briefing_f",
"label": "Briefing-Offizierin"
},
{
"match": "^r_tower_(approach|extract|start)_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_tower_(hw|sea)_(approach|extract)_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_tower_handover_",
"speaker": "tower_f",
"label": "Tower"
},
{
"match": "^r_tower_lesson_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_tower_strike_",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_wp_geo_",
"speaker": "briefing_f",
"label": "Briefing-Offizierin"
},
{
"match": "^r_pilot_call_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_pilot_hw_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_pilot_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_retter_hw_",
"speaker": "sani_f",
"label": "Sanitäterin"
},
{
"match": "^r_retter_",
"speaker": "retter_m",
"label": "Flugretter"
},
{
"match": "^r_land_(rescuer_down|rescuer_ready)",
"speaker": "retter_m",
"label": "Flugretter"
},
{
"match": "^r_land_disembark",
"speaker": "tower_f",
"label": "Tower {tower_city}"
},
{
"match": "^r_land_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_nav_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_warn_",
"speaker": "{pilot}",
"label": "{pilot_label}"
},
{
"match": "^r_strike|^r_ouch|^r_takeover",
"speaker": "{pilot}",
"label": "{pilot_label}"
}
],
"_tower_city_by_helikey": "Welche Tower-Stadt zu welchem Heli gehoert (real, nicht erfunden). c2/c3/c14/c16 sind AFIS-Plaetze und sprechen mit Wien Information.",
"tower_city_by_helikey": {
"c1": "Innsbruck Tower",
"c2": "Wien Information",
"c3": "Wien Information",
"c4": "Innsbruck Tower",
"c5": "Innsbruck Tower",
"c6": "Salzburg Tower",
"c7": "Klagenfurt Tower",
"c8": "Innsbruck Tower",
"c9": "Wien Tower",
"c10": "Linz Tower",
"c11": "Klagenfurt Tower",
"c12": "Graz Tower",
"c14": "Wien Information",
"c16": "Wien Information",
"ara": "Innsbruck Tower"
}
}