package audit

// Implementation entry points for Methods B-E. The full algorithms live
// in consistency.go, vocabulary.go, echo.go, hierarchy.go respectively.
// Until those files land, these wrappers keep main.go compilable and
// return a clearly-marked empty report.

func RunConsistency() ConsistencyReport {
	return runConsistencyImpl()
}

func RunVocabulary(form map[string]any) VocabularyReport {
	return runVocabularyImpl(form)
}

func RunEcho(form map[string]any, hazards []map[string]any) EchoReport {
	return runEchoImpl(form, hazards)
}

func RunHierarchy(hazards, mitigations []map[string]any) HierarchyReport {
	return runHierarchyImpl(hazards, mitigations)
}

// Default implementations — replaced when each method file lands.
// Keeping them as separate functions in one place avoids name clashes
// once consistency.go etc. add their real implementations.

var (
	runConsistencyImpl = func() ConsistencyReport { return ConsistencyReport{} }
	runVocabularyImpl  = func(form map[string]any) VocabularyReport { return VocabularyReport{} }
	runEchoImpl        = func(form map[string]any, hazards []map[string]any) EchoReport {
		return EchoReport{}
	}
	runHierarchyImpl = func(hazards, mitigations []map[string]any) HierarchyReport {
		return HierarchyReport{}
	}
)
