scores = []; foreach (['coverage', 'metadata', 'seo', 'media', 'reliability', 'commercial_suitability'] as $metric) { $this->scores[$metric] = max(0.0, min(1.0, (float) ($scores[$metric] ?? 0.0))); } } public function getScores(): array { return $this->scores; } public function getCoverage(): float { return $this->scores['coverage']; } public function getMetadata(): float { return $this->scores['metadata']; } public function getSeo(): float { return $this->scores['seo']; } public function getMedia(): float { return $this->scores['media']; } public function getReliability(): float { return $this->scores['reliability']; } public function getCommercialSuitability(): float { return $this->scores['commercial_suitability']; } public function getOverallScore(): float { return round(array_sum($this->scores) / count($this->scores), 4); } }