The tiny get/set/forget cache contract apps implement with their own cache (Redis, a Map, a framework cache) so the SDK can persist paused runs without bundling any cache itself.

## Before writing SPEC.md files

Read https://raw.githubusercontent.com/brillout/sdd/refs/heads/main/sdd.md
