$phrases Source phrases, the same list * the main scoring loop used. * @param array $suggestions Suggestions the main loop already * produced, so their targets are * not considered twice. * @param array $light_candidates Full candidate corpus, identity * and title only. * @param PostModel $source Source post. * @param callable(array): array $hydrate Returns fully-tokenised * candidates for the given post ids. Call it only for the few candidates * that need an anchor built, never for the whole corpus. * * @return array Newly-constructed suggestions to merge in. */ public function inject_candidates( array $phrases, array $suggestions, array $light_candidates, PostModel $source, callable $hydrate ): array; }