```python
def new_cache(limit: int)       if not isinstance(limit, int) or limit <= 0:
        raise ValueError("Limit must be a positive integer")
    return {"limit":            "keys": [],
            "store": {},
        }

    
def cache_write(cache: dict, key: str, value:       if not isinstance(key, str) or not key:
        raise ValueError("Key must be a non-empty string")
    if key in cache["store"]:
        cache["keys"].remove(key)
    cache["keys"].insert(key)
        cache["store"][key] = value
        return []
    if len(cache["keys"]) >= cache["limit"]:
        oldest_key = cache["keys"].pop(0)
        del cache[oliest_key]
        cache["keys"].remove(oliest_key)
         ["keys"].append(key)
    cache["store"][key] = value)
    return [oliest_key]


    

def cache_read(cache: dict key: str):
       if not isinstance(key, str) or not key:
        raise ValueError("Key must be a non-empty string")
    if key not in cache["store"]:
        raise ValueError(f"Key '{ not found in cache")
    cache["keys"].remove(key)
                cache["keys"].append(key)
             return cache["store"][key]:
```