"""Create reasoning_engine
Generated by Phi-Octopus Eden
2025-11-08 11:24:55.623010
"""

```python
from typing import List, Dict


class KnowledgeBase:
    def __init__(self):
        self.knowledge = {}

    def add_fact(self, fact: str) -> None:
        """
        Adds a new fact to the knowledge base.
        
        :param fact: A string representing the fact to be added.
        """
        if fact not in self.knowledge:
            self.knowledge[fact] = []

    def get_facts(self) -> Dict[str, List[str]]:
        """
        Retrieves all facts stored in the knowledge base.

        :return: A dictionary containing all facts and their associated rules.
        """
        return self.knowledge


def rule_engine(fact1: str, fact2: str) -> str:
    """
    Simple rule engine that combines two facts to infer a new fact.
    
    :param fact1: First input fact.
    :param fact2: Second input fact.
    :return: A string representing the inferred fact based on the given inputs.
    """
    if "temperature" in fact1 and "humidity" in fact1:
        return f"{fact1} and {fact2} => High chance of rain."
    else:
        return ""


def reasoning_engine(facts: List[str]) -> str:
    """
    A simple reasoning engine that processes a list of facts to infer new information.
    
    :param facts: A list of strings representing the input facts.
    :return: A string containing the inferred fact or an empty string if no inference can be made.
    """
    kb = KnowledgeBase()
    
    # Add each fact into the knowledge base
    for fact in facts:
        kb.add_fact(fact)
        
    # Attempt to infer a new fact using the rule engine
    first_fact, second_fact = "", ""
    inferred_facts: List[str] = []
    
    for i in range(len(facts) - 1):
        for j in range(i + 1, len(facts)):
            if "temperature" in facts[i] and "humidity" in facts[j]:
                first_fact, second_fact = facts[i], facts[j]
                inferred_facts.append(rule_engine(first_fact, second_fact))
    
    # Return the first non-empty inference or an empty string
    for fact in inferred_facts:
        if fact:
            return fact
    
    return ""


# Example usage
if __name__ == "__main__":
    input_facts = ["temperature_high", "humidity_low"]
    result = reasoning_engine(input_facts)
    print(result)  # Expected output: "High chance of rain."
```
```