identifierType = $identifierType; $this->domain = $domain; $this->cacheStatus = $cacheStatus; $this->selections = array_values($selections); $this->reasoning = $reasoning; } public function getIdentifierType(): string { return $this->identifierType; } public function getDomain(): string { return $this->domain; } public function getCacheStatus(): string { return $this->cacheStatus; } public function getSelections(): array { return $this->selections; } public function getReasoning(): ProviderReasoning { return $this->reasoning; } public function explain(string $providerName): string { return $this->reasoning->explain($providerName); } public function isSatisfiedByCache(): bool { return in_array($this->cacheStatus, ['Fresh', 'Merged'], true); } }