$surfaceKeys */ public function __construct( public string $actionKey, public string $familyKey, public GovernanceFrictionClass $frictionClass, public GovernanceReasonPolicy $reasonPolicy, public string $dangerPolicy, public string $canonicalLabel, public string $modalHeading, public string $modalDescription, public string $successTitle, public string $auditVerb, public string $serviceOwner, public array $surfaceKeys = [], ) {} public function requiresConfirmation(): bool { return $this->frictionClass->requiresConfirmation(); } public function requiresReason(): bool { return $this->reasonPolicy->requiresReason(); } public function requiresDangerSeparation(): bool { return $this->dangerPolicy === 'required'; } }