package iace

// GetCyberExtendedPatterns3 returns 20 hazard patterns (HP845-HP864)
// for network/communication failures and human-machine interaction (HMI)
// hazards in industrial control systems.
func GetCyberExtendedPatterns3() []HazardPattern {
	return []HazardPattern{
		// ================================================================
		// Netzwerk / Kommunikation (HP845-HP854)
		// ================================================================
		{
			ID: "HP845", NameDE: "Feldbusausfall (PROFINET/EtherCAT/Modbus)", NameEN: "Fieldbus failure (PROFINET/EtherCAT/Modbus)",
			RequiredComponentTags: []string{"networked", "it_component"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M106", "M119", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              85,
			ScenarioDE:      "Kompletter Feldbusausfall trennt SPS von allen Antrieben und Sensoren; Maschine verliert Kontrolle.",
			TriggerDE:       "Kabelbruch, Switch-Ausfall, EMV-Stoerung, Stecker oxidiert, Master-Ausfall",
			HarmDE:          "Unkontrollierter Maschinenstillstand, Antriebe im letzten Zustand, Last faellt herab",
			AffectedDE:      "Bedienpersonal, Personen im Maschinenbereich",
			ZoneDE:          "Gesamte Maschine (alle Feldbus-Teilnehmer betroffen)",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP846", NameDE: "Telegrammverlust in Echtzeit-Kommunikation", NameEN: "Telegram loss in real-time communication",
			RequiredComponentTags: []string{"networked"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M106", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              80,
			ScenarioDE:      "Einzelne Telegramme im Echtzeit-Bussystem gehen verloren; Antrieb erhaelt keinen neuen Sollwert und behlt den alten.",
			TriggerDE:       "EMV-Stoerung, Kabelknicke, Switch-Ueberlast, defekter Busteilnehmer stoert Zyklus",
			HarmDE:          "Antrieb faehrt mit veraltetem Sollwert weiter, Position stimmt nicht mehr, Kollision",
			AffectedDE:      "Bedienpersonal bei Mehrachssystemen",
			ZoneDE:          "Bewegungsbereich der betroffenen Achse, Synchron-Verfahrbereiche",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP847", NameDE: "Jitter in Synchronisation von Achssystem", NameEN: "Jitter in multi-axis synchronization",
			RequiredComponentTags: []string{"networked", "moving_part"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure", "mechanical_hazard"},
			SuggestedMeasureIDs:   []string{"M114"},
			SuggestedEvidenceIDs:  []string{"E01", "E14", "E17"},
			Priority:              75,
			ScenarioDE:      "Zeitschwankungen (Jitter) in der Echtzeit-Kommunikation fuehren zu Synchronisationsverlust in Mehrachssystemen.",
			TriggerDE:       "Ungeeigneter Switch (nicht echtzeitfaehig), Cross-Traffic, falsches VLAN-Setup",
			HarmDE:          "Achsen laufen auseinander, mechanische Verspannung, Kollision zwischen Achsen",
			AffectedDE:      "Bedienpersonal an synchronisierten Mehrachssystemen",
			ZoneDE:          "Gesamter Verfahrbereich der synchronisierten Achsen",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP848", NameDE: "Gateway-Ausfall zwischen Feld- und Leitebene", NameEN: "Gateway failure between field and control level",
			RequiredComponentTags: []string{"networked", "it_component"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M106", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              70,
			ScenarioDE:      "Gateway zwischen Feldbus und Leitebene faellt aus; SCADA verliert Sicht auf Prozess, Alarme kommen nicht durch.",
			TriggerDE:       "Hardware-Defekt, Software-Absturz, Speicherueberlauf im Gateway, Firmware-Fehler",
			HarmDE:          "Verlust der Prozessueberwachung, Alarme werden nicht weitergeleitet, Blindflug am Leitstand",
			AffectedDE:      "Leitstand-Personal, SCADA-Betreiber",
			ZoneDE:          "Gateway, Uebergabepunkt Feldbus/Ethernet, SCADA-Server",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
		{
			ID: "HP849", NameDE: "Firmware-Inkompatibilitaet nach Update", NameEN: "Firmware incompatibility after update",
			RequiredComponentTags: []string{"has_software", "networked"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"update_failure", "communication_failure"},
			SuggestedMeasureIDs:   []string{"M138", "M146"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              75,
			ScenarioDE:      "Firmware-Update eines Busteilnehmers ist inkompatibel mit der SPS-Version; Kommunikation bricht zusammen.",
			TriggerDE:       "Teilnehmer einzeln aktualisiert ohne Kompatibilitaetspruefung, Breaking Change in neuer Version",
			HarmDE:          "Busausfall, Antrieb nicht erreichbar, unkontrollierter Zustand",
			AffectedDE:      "Wartungspersonal (Update-Vorgang), anschliessend Bedienpersonal",
			ZoneDE:          "Aktualisierter Busteilnehmer, gesamter Busstrang bei Master-Update",
			DefaultSeverity: 3, DefaultExposure: 1,
		},
		{
			ID: "HP850", NameDE: "IP-Konflikt im Maschinennetzwerk", NameEN: "IP conflict in machine network",
			RequiredComponentTags: []string{"networked"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M186", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              65,
			ScenarioDE:      "Zwei Geraete im Maschinennetzwerk haben dieselbe IP-Adresse; Kommunikation ist unzuverlaessig.",
			TriggerDE:       "Manuelles IP-Management ohne Dokumentation, Ersatzgeraet mit werksseitiger IP, DHCP-Fehler",
			HarmDE:          "Sporadische Kommunikationsausfaelle, Steuerungsbefehle an falsches Geraet, undeterministisches Verhalten",
			AffectedDE:      "Bedienpersonal (schwer erkennbare Stoerung)",
			ZoneDE:          "Maschinennetzwerk, betroffene IP-Teilnehmer",
			DefaultSeverity: 3, DefaultExposure: 2,
		},
		{
			ID: "HP851", NameDE: "Zeitsynchronisation verloren — Sequenzfehler", NameEN: "Time synchronization lost — sequence error",
			RequiredComponentTags: []string{"networked", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure", "software_fault"},
			SuggestedMeasureIDs:   []string{"M040", "M106", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E14", "E17"},
			Priority:              75,
			ScenarioDE:      "PTP/NTP-Synchronisation im Netzwerk geht verloren; zeitgesteuerte Aktionen werden asynchron ausgefuehrt.",
			TriggerDE:       "Grand-Master-Clock faellt aus, Kabelbruch zum Zeitserver, Switch ohne PTP-Support",
			HarmDE:          "Achsen bewegen sich nicht mehr synchron, Sequenzen in falscher Reihenfolge",
			AffectedDE:      "Bedienpersonal bei synchronisierten Anlagen",
			ZoneDE:          "Alle zeitgesteuerten Stationen und Achsen",
			DefaultSeverity: 4, DefaultExposure: 1,
		},
		{
			ID: "HP852", NameDE: "Bandbreite-Ueberlastung verzoegert Sicherheitsfunktion", NameEN: "Bandwidth overload delays safety function",
			RequiredComponentTags: []string{"networked", "safety_device"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure", "safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M106", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E07", "E17"},
			Priority:              85,
			ScenarioDE:      "Netzwerk-Ueberlastung verzoegert sicherheitsrelevante Telegramme ueber die maximale Reaktionszeit hinaus.",
			TriggerDE:       "Datenintensiver Prozess (Vision-System) auf gleichem Netzwerk, Broadcast-Storm, fehlende QoS-Konfiguration",
			HarmDE:          "Sicherheitsfunktion reagiert zu spaet, Nachlaufweg vergroessert sich, Schutzfunktion unwirksam",
			AffectedDE:      "Bedienpersonal im Schutzbereich der verzoegerten Sicherheitsfunktion",
			ZoneDE:          "Netzwerkstrecke zum Safety-Controller, gesamter Schutzbereich",
			DefaultSeverity: 5, DefaultExposure: 1,
		},
		{
			ID: "HP853", NameDE: "Fehlerhafte Routing-Konfiguration", NameEN: "Faulty routing configuration",
			RequiredComponentTags: []string{"networked", "it_component"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M186", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              60,
			ScenarioDE:      "Falsche Routing-Konfiguration leitet Steuerbefehle an falsches Teilnetz oder laesst sie ins Leere laufen.",
			TriggerDE:       "Fehlkonfiguration nach Netzwerkaenderung, falsches Default-Gateway, Route Loop",
			HarmDE:          "Steuerbefehle kommen nicht an, Antriebe reagieren nicht, Fehlzuordnung von Befehlen",
			AffectedDE:      "Bedienpersonal, Netzwerkadministrator",
			ZoneDE:          "Router, Layer-3-Switches, Netzwerksegmentierung",
			DefaultSeverity: 3, DefaultExposure: 1,
		},
		{
			ID: "HP854", NameDE: "Switch-Ausfall in Ring-Topologie", NameEN: "Switch failure in ring topology",
			RequiredComponentTags: []string{"networked", "it_component"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"communication_failure"},
			SuggestedMeasureIDs:   []string{"M113", "M119", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E17"},
			Priority:              75,
			ScenarioDE:      "Managed Switch in Ring-Topologie faellt aus; Ring-Redundanz uebernimmt, aber Umschaltzeit stoert Echtzeit-Kommunikation.",
			TriggerDE:       "Switch-Hardware-Defekt, Spannungsausfall am Switch, Ring-Rekonfiguration dauert zu lange (>Zykluszeit)",
			HarmDE:          "Kurzzeitiger Kommunikationsausfall, Antriebe verlieren Sollwerte, Synchronisationsverlust",
			AffectedDE:      "Bedienpersonal bei zeitkritischen Prozessen",
			ZoneDE:          "Ring-Netzwerk, alle Teilnehmer hinter dem ausgefallenen Switch",
			DefaultSeverity: 3, DefaultExposure: 2,
		},

		// ================================================================
		// Mensch-Maschine-Interaktion / HMI (HP855-HP864)
		// ================================================================
		{
			ID: "HP855", NameDE: "HMI friert ein — Bediener handelt blind", NameEN: "HMI freezes — operator acts blind",
			RequiredComponentTags: []string{"user_interface", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"software_fault"},
			SuggestedMeasureIDs:   []string{"M103", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              80,
			ScenarioDE:      "HMI-Bildschirm friert ein und zeigt veraltete Prozesswerte; Bediener trifft Entscheidungen auf Basis falscher Anzeige.",
			TriggerDE:       "Software-Absturz der HMI-Anwendung, Speicherueberlauf, Grafiktreiber-Fehler",
			HarmDE:          "Fehlbedienung aufgrund veralteter Anzeige, Eingriff in falschen Prozess, verpasster Alarm",
			AffectedDE:      "Bedienpersonal am eingefrorenen HMI",
			ZoneDE:          "Leitstand, HMI-Terminal, alle ueberwachten Prozessbereiche",
			DefaultSeverity: 4, DefaultExposure: 2,
		},
		{
			ID: "HP856", NameDE: "Alarmueberschwemmung (Alarm Flooding)", NameEN: "Alarm flooding",
			RequiredComponentTags: []string{"user_interface", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141", "M149"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              80,
			ScenarioDE:      "Hunderte Alarme erscheinen gleichzeitig; Bediener kann kritischen Alarm nicht identifizieren.",
			TriggerDE:       "Kaskadenartige Stoerung, schlechtes Alarm-Design, keine Alarm-Priorisierung, zu niedrige Schwellwerte",
			HarmDE:          "Kritischer Alarm wird uebersehen, verzoegerte Reaktion, falsche Priorisierung",
			AffectedDE:      "Bedienpersonal am Leitstand",
			ZoneDE:          "Leitstand, Alarm-Management-System",
			DefaultSeverity: 4, DefaultExposure: 3,
		},
		{
			ID: "HP857", NameDE: "Falscher Betriebsartenwahlschalter", NameEN: "Wrong operating mode selector",
			RequiredComponentTags: []string{"user_interface", "programmable"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"configuration_error"},
			SuggestedMeasureIDs:   []string{"M145", "M121"},
			SuggestedEvidenceIDs:  []string{"E01", "E08"},
			Priority:              85,
			ScenarioDE:      "Bediener waehlt falsche Betriebsart (z. B. Automatik statt Einrichten); Maschine startet mit voller Geschwindigkeit.",
			TriggerDE:       "Verwechslung der Betriebsart, Schluesselschalter nicht verriegelt, fehlende Anzeige der aktiven Betriebsart",
			HarmDE:          "Unerwartete Maschinenbewegung bei voller Geschwindigkeit, Quetschung, Kollision",
			AffectedDE:      "Einrichter, Bedienpersonal im Maschinenbereich",
			ZoneDE:          "Gesamte Maschine, insbesondere Bereiche die bei Einrichten zugaenglich sind",
			DefaultSeverity: 5, DefaultExposure: 2,
		},
		{
			ID: "HP858", NameDE: "Display zeigt falschen Prozesswert", NameEN: "Display shows wrong process value",
			RequiredComponentTags: []string{"user_interface", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"software_fault"},
			SuggestedMeasureIDs:   []string{"M205", "M204", "M214", "M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              75,
			ScenarioDE:      "HMI zeigt falschen Messwert (z. B. falsche Zuordnung von Sensor zu Anzeige) und Bediener reagiert falsch.",
			TriggerDE:       "Programmierfehler in der Visualisierung, falscher Tag zugeordnet, Skalierungsfehler",
			HarmDE:          "Fehlbedienung auf Basis falscher Information, Prozess laeuft aus dem Toleranzbereich",
			AffectedDE:      "Bedienpersonal, das sich auf die Anzeige verlaesst",
			ZoneDE:          "HMI-Display, Prozessabbild auf dem Leitstand",
			DefaultSeverity: 3, DefaultExposure: 3,
		},
		{
			ID: "HP859", NameDE: "Bediener umgeht Safety-Login am HMI", NameEN: "Operator bypasses safety login on HMI",
			RequiredComponentTags: []string{"user_interface", "has_software"},
			RequiredEnergyTags:    []string{"cyber"},
			GeneratedHazardCats:   []string{"unauthorized_access", "safety_function_failure"},
			SuggestedMeasureIDs:   []string{"M111", "M112"},
			SuggestedEvidenceIDs:  []string{"E01", "E16"},
			Priority:              80,
			ScenarioDE:      "Bediener umgeht Login-Bildschirm am HMI und erlangt Zugang zu sicherheitsrelevanten Parametern.",
			TriggerDE:       "Gemeinsames Passwort, Post-It mit Passwort am Monitor, Auto-Login konfiguriert",
			HarmDE:          "Unberechtigte Aenderung von Sicherheitsparametern, Deaktivierung von Schutzfunktionen",
			AffectedDE:      "Bedienpersonal, alle Personen im Maschinenbereich",
			ZoneDE:          "HMI-Terminal, Parameterseiten der Steuerung",
			DefaultSeverity: 4, DefaultExposure: 3,
		},
		{
			ID: "HP860", NameDE: "Touch-Fehlbedienung (nasse Finger/Handschuhe)", NameEN: "Touch misoperation (wet fingers/gloves)",
			RequiredComponentTags: []string{"user_interface"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E20"},
			Priority:              65,
			ScenarioDE:      "Touchscreen reagiert auf nasse Finger, Handschuhe oder Wassertropfen und loest unbeabsichtigte Funktion aus.",
			TriggerDE:       "Regen, Schwitzhaende, Oelfilm auf Handschuh, Wasserspritzer auf Display",
			HarmDE:          "Unbeabsichtigtes Starten einer Funktion, Parameterwechsel, Betriebsart-Umschaltung",
			AffectedDE:      "Bedienpersonal mit Handschuhen oder in nassem Umfeld",
			ZoneDE:          "Touch-HMI, Panel-PC, mobile Bediengeraete",
			DefaultSeverity: 3, DefaultExposure: 3,
		},
		{
			ID: "HP861", NameDE: "Sprachbarriere bei mehrsprachiger Belegschaft", NameEN: "Language barrier in multilingual workforce",
			RequiredComponentTags: []string{"user_interface"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141"},
			SuggestedEvidenceIDs:  []string{"E24", "E25"},
			Priority:              60,
			ScenarioDE:      "Alarmmeldungen und Sicherheitshinweise am HMI sind nur in einer Sprache; Bediener versteht Warnung nicht.",
			TriggerDE:       "Einsprachiges HMI, fremdsprachige Zeitarbeitskraefte, fehlende Piktogramme",
			HarmDE:          "Warnung nicht verstanden, falsche Reaktion auf Alarm, Sicherheitsunterweisung nicht begriffen",
			AffectedDE:      "Nicht-muttersprachliche Bediener, Zeitarbeitskraefte, Leiharbeiter",
			ZoneDE:          "HMI-Terminal, Sicherheitsbeschilderung, Alarmanzeigen",
			DefaultSeverity: 3, DefaultExposure: 3,
		},
		{
			ID: "HP862", NameDE: "Nachtschicht-Muedigkeit fuehrt zu Fehlreaktion", NameEN: "Night shift fatigue leads to wrong reaction",
			RequiredComponentTags: []string{"user_interface"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141"},
			SuggestedEvidenceIDs:  []string{"E25"},
			Priority:              60,
			ScenarioDE:      "Muedigkeit in der Nachtschicht verzoegert Reaktionszeit und erhoeht Wahrscheinlichkeit fuer Fehlbedienung.",
			TriggerDE:       "Lange Schichtdauer, monotone Ueberwachungsaufgabe, fehlende Pausenregelung",
			HarmDE:          "Verzoegerte Reaktion auf Alarm, Einschlafen am Leitstand, Fehlbedienung",
			AffectedDE:      "Nachtschicht-Personal, alle von der Ueberwachung abhaengigen Personen",
			ZoneDE:          "Leitstand, Ueberwachungsstationen",
			DefaultSeverity: 3, DefaultExposure: 4,
		},
		{
			ID: "HP863", NameDE: "Informationsueberlastung am Bedienterminal", NameEN: "Information overload at operator terminal",
			RequiredComponentTags: []string{"user_interface", "has_software"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              55,
			ScenarioDE:      "Zu viele Informationen, Trends und Werte auf einem Bildschirm ueberfordern den Bediener kognitiv.",
			TriggerDE:       "Schlechtes UI-Design, zu viele gleichzeitig angezeigte Werte, fehlende Informationshierarchie",
			HarmDE:          "Kritische Information wird uebersehen, verzoegerte Erkennung von Anomalien",
			AffectedDE:      "Bedienpersonal, Leitstand-Operatoren",
			ZoneDE:          "HMI-Bildschirme, SCADA-Oberflaeche, Leitstand",
			DefaultSeverity: 2, DefaultExposure: 4,
		},
		{
			ID: "HP864", NameDE: "Fehlende Rueckmeldung — Bediener drueckt erneut", NameEN: "Missing feedback — operator presses again",
			RequiredComponentTags: []string{"user_interface"},
			RequiredEnergyTags:    []string{},
			GeneratedHazardCats:   []string{"ergonomic"},
			SuggestedMeasureIDs:   []string{"M141"},
			SuggestedEvidenceIDs:  []string{"E01", "E14"},
			Priority:              65,
			ScenarioDE:      "HMI gibt keine Rueckmeldung auf Tastendruck; Bediener drueckt erneut und loest unbeabsichtigte Doppelaktion aus.",
			TriggerDE:       "Fehlende akustische/visuelle Quittierung, langsame HMI-Reaktion, Netzwerk-Latenz",
			HarmDE:          "Doppelter Befehl (z. B. doppelter Zyklus-Start), Maschine startet erneut waehrend Entnahme",
			AffectedDE:      "Bedienpersonal",
			ZoneDE:          "HMI-Taster/Touchscreen, Gesamte Maschine bei Doppelausloesung",
			DefaultSeverity: 3, DefaultExposure: 3,
		},
	}
}
