$summaryRows * @param array $groups * @param array $technicalDetail */ public function __construct( public int $snapshotId, public ?string $baselineProfileName, public ?string $capturedAt, public ?string $snapshotIdentityHash, public string $stateLabel, public string $fidelitySummary, public FidelityState $overallFidelity, public int $overallGapCount, public array $summaryRows, public array $groups, public array $technicalDetail, public bool $hasItems, ) {} /** * @return array{ * page: string, * snapshot: array{ * snapshotId: int, * baselineProfileName: ?string, * capturedAt: ?string, * snapshotIdentityHash: ?string, * stateLabel: string, * fidelitySummary: string, * overallFidelity: string, * overallGapCount: int * }, * summaryRows: list, * groups: list, badge_state: string}, * initiallyCollapsed: bool, * items: list, badge_state: string}, * observedAt: ?string, * sourceReference: ?string, * structuredAttributes: list * }>, * renderingError: ?string, * coverageHint: ?string, * capturedAt: ?string, * technicalPayload: array * }>, * technicalDetail: array, * hasItems: bool * } */ public function toArray(): array { return [ 'page' => 'baseline-snapshot-detail', 'snapshot' => [ 'snapshotId' => $this->snapshotId, 'baselineProfileName' => $this->baselineProfileName, 'capturedAt' => $this->capturedAt, 'snapshotIdentityHash' => $this->snapshotIdentityHash, 'stateLabel' => $this->stateLabel, 'fidelitySummary' => $this->fidelitySummary, 'overallFidelity' => $this->overallFidelity->value, 'overallGapCount' => $this->overallGapCount, ], 'summaryRows' => $this->summaryRows, 'groups' => array_map( static fn (RenderedSnapshotGroup $group): array => $group->toArray(), $this->groups, ), 'technicalDetail' => $this->technicalDetail, 'hasItems' => $this->hasItems, ]; } }