$structuredAttributes */ public function __construct( public string $label, public string $typeLabel, public string $identityHint, public string $referenceStatus, public FidelityState $fidelity, public GapSummary $gapSummary, public ?string $observedAt, public ?string $sourceReference, public array $structuredAttributes, ) {} /** * @return array{ * label: string, * typeLabel: string, * identityHint: string, * referenceStatus: string, * fidelity: string, * gapSummary: array{count: int, has_gaps: bool, messages: list, badge_state: string}, * observedAt: ?string, * sourceReference: ?string, * structuredAttributes: list * } */ public function toArray(): array { return [ 'label' => $this->label, 'typeLabel' => $this->typeLabel, 'identityHint' => $this->identityHint, 'referenceStatus' => $this->referenceStatus, 'fidelity' => $this->fidelity->value, 'gapSummary' => $this->gapSummary->toArray(), 'observedAt' => $this->observedAt, 'sourceReference' => $this->sourceReference, 'structuredAttributes' => array_map( static fn (RenderedAttribute $attribute): array => $attribute->toArray(), $this->structuredAttributes, ), ]; } }