package iace

// HazardPattern defines a rule that matches component/energy tags to
// hazards, measures, and evidence. When a pattern's required tags are all
// present (AND) and none of its excluded tags are present (NOT), it fires.
type HazardPattern struct {
	ID                    string   `json:"id"`
	NameDE                string   `json:"name_de"`
	NameEN                string   `json:"name_en"`
	RequiredComponentTags []string `json:"required_component_tags"`
	RequiredEnergyTags    []string `json:"required_energy_tags"`
	RequiredLifecycles    []string `json:"required_lifecycle_phases"`
	ExcludedComponentTags []string `json:"excluded_component_tags"`
	GeneratedHazardCats   []string `json:"generated_hazard_categories"`
	SuggestedMeasureIDs   []string `json:"suggested_measure_ids"`
	SuggestedEvidenceIDs  []string `json:"suggested_evidence_ids"`
	Priority              int      `json:"priority"`
	// Expert calculation hint — shown when pattern fires and expert validation is needed
	RequiresExpertCalculation bool   `json:"requires_expert_calculation,omitempty"`
	ExpertHintDE              string `json:"expert_hint_de,omitempty"`
	ExpertHintEN              string `json:"expert_hint_en,omitempty"`
}
