/**
* Canonical external-action receipt vocabulary.
*
* Host bindings are generated from these closed unions by
* `harn dump-protocol-artifacts`. Add receipt vocabulary here once; do not
* mirror it in Swift, Rust, or TypeScript.
*/
pub type ExternalActionOutcome = "confirmed" \
| "denied" \
| "failed_before_dispatch" \
| "rejected" \
| "indeterminate"
pub type ExternalActionReceiptStatus = "confirmed" \
| "denied" \
| "failed_before_dispatch" \
| "rejected" \
| "reconciliation_required"
pub type ExternalActionNextAction = "none" | "reconcile"
pub type ExternalActionEnvironment = "mock" | "test" | "live"
pub type ExternalActionAuthorizationMethod = "manual" \
| "policy" \
| "adversarial_auto" \
| "managed_policy" \
| "test_fixture"
pub type ExternalActionAuthenticationAssurance = "none" | "session" | "biometric" | "managed"
pub type ExternalActionDisclosureSource = "user_profile" | "fictional_test_fixture"
pub type ExternalActionErrorKind = "invalid_intent" \
| "invalid_grant" \
| "invalid_policy" \
| "adapter_unavailable" \
| "adapter_failure" \
| "malformed_adapter_result" \
| "disclosure_unavailable" \
| "disclosure_refused" \
| "malformed_disclosure" \
| "invalid_reconciliation"
pub type ExternalActionProtectedFieldClass = "legal_identity" \
| "birth_date" \
| "contact_details" \
| "accessibility_needs" \
| "loyalty_accounts" \
| "travel_documents"
pub type ExternalActionPassengerGender = "m" | "f"
pub type ExternalActionActivityStatus = "proposed" \
| "approval_pending" \
| "denied" \
| "cancelled" \
| "timed_out" \
| "dispatch_pending" \
| "confirmed" \
| "failed_before_dispatch" \
| "rejected" \
| "reconciliation_required"
/** Nonterminal states in monotonic lifecycle order. */
pub type ExternalActionProgressActivityStatus = "proposed" \
| "approval_pending" \
| "dispatch_pending" \
| "reconciliation_required"
/** States whose exact activity snapshot may replay but may never advance. */
pub type ExternalActionTerminalActivityStatus = "denied" \
| "cancelled" \
| "timed_out" \
| "confirmed" \
| "failed_before_dispatch" \
| "rejected"
pub type ExternalActionPolicyLayer = "user_policy" \
| "managed_policy" \
| "adversarial_reviewer" \
| "remembered_rule"
pub type ExternalActionPolicyEvaluationOutcome = "allowed" \
| "denied" \
| "approval_required" \
| "unavailable"
pub type ExternalActionDecisionOutcome = "approved" | "denied" | "timed_out" | "cancelled"
pub type ExternalActionDecider = "person" \
| "remembered_rule" \
| "user_policy" \
| "managed_policy" \
| "adversarial_reviewer" \
| "test_fixture"
pub type ExternalActionReconciliationStatus = "not_needed" \
| "confirmed" \
| "rejected" \
| "indeterminate" \
| "refused"