$subject */ public static function assertStructuredSubject(array $subject): void { foreach ([ 'policy_type', 'subject_key', 'subject_class', 'resolution_path', 'resolution_outcome', 'reason_code', 'operator_action_category', 'structural', 'retryable', ] as $key) { Assert::assertArrayHasKey($key, $subject); } } /** * @param list> $subjects */ public static function assertStructuredSubjects(array $subjects): void { Assert::assertNotEmpty($subjects); foreach ($subjects as $subject) { Assert::assertIsArray($subject); self::assertStructuredSubject($subject); } } }