package infra

// E2ECheck describes an individual validation declared in app.md::e2e_checks.
// Each check specifies either a command to run, a health endpoint to poll,
// or a cross-service reference. Checks are executed sequentially by E2ERunChecks.
type E2ECheck struct {
	ID                   string `json:"id"`
	Cmd                  string `json:"cmd,omitempty"`
	Health               string `json:"health,omitempty"`
	Ref                  string `json:"ref,omitempty"`
	TimeoutS             int    `json:"timeout_s,omitempty"`
	ExpectExit           *int   `json:"expect_exit,omitempty"`
	ExpectStdoutContains string `json:"expect_stdout_contains,omitempty"`
	ExpectStdoutJSON     string `json:"expect_stdout_json,omitempty"`
	Severity             string `json:"severity,omitempty"` // critical|warning, default critical
}
