# Documents that last

Wasot is a file format for humans and [tools](./tools.md) to collaborate on (see [principles](./principles.md) and [use cases](./use_cases.md)).
This means, that there are tools acting on those documents.
But data normally outlives code.
We don't want to make the data useless just because tools died.
So, how to make the data last, even if the documents depend on tools?

## Counter-Example: Jupyter notebooks

Jupyter notebooks suffer from the same problem. 
You run them with a python environment and get some outputs. 
Then you forget about them, detect them again.
You just want to change a small thing, and nothing is working anymore.
Sure, with python environment, you can freeze the dependencies. 
But in reality, setting up the environment again is too much of a pain to change anything.

## The goal

I want to find a document after 10 years, while I have forgotten which tools I used or how to install them. 
I want to change a minor thing offline. With just a few milliseconds, everything is updated, including all tool-calls. Everything just works.
This should even work on a different machine, operating on my external drive.

## Requirements

Some requirements emerge from this goal.

- Caching (see [architecture](./architecture.md) for the event cache format)
- [Tools](./tools.md) and [plugins](./plugins.md) live with the data
- Tools are runnable on different systems
- Tools don't have any requirements on anything outside the current file or [project](./project.md).
- ...

