$statusBadges * @param list $keyFacts * @param list $primaryActions */ public function __construct( public string $title, public ?string $subtitle = null, public array $statusBadges = [], public array $keyFacts = [], public array $primaryActions = [], public ?string $descriptionHint = null, ) {} /** * @return array{ * title: string, * subtitle: ?string, * statusBadges: list, * keyFacts: list, * primaryActions: list, * descriptionHint: ?string * } */ public function toArray(): array { return [ 'title' => $this->title, 'subtitle' => $this->subtitle, 'statusBadges' => array_values($this->statusBadges), 'keyFacts' => array_values($this->keyFacts), 'primaryActions' => array_values(array_map( static fn (PageActionData $action): array => $action->toArray(), array_values(array_filter( $this->primaryActions, static fn (PageActionData $action): bool => $action->isRenderable(), )), )), 'descriptionHint' => $this->descriptionHint, ]; } }