# What a recipe must carry

A file without its source is a file torn from where it came from. For every point below there is either a field, or an explicit "the site has none". `get_run` answers most of these with numbers; read them.

## project_name - the first thing the person sees

The wizard names the project from the recipe. **A real name**, never a piece of the address: "The Shawshank Redemption", not `tt0111161`. It is said by an `extract` named `project_name`, as early as possible - the wizard runs up to three steps to hear it. `get_run` reports `project_name` and `looks_like_url`; true means the recipe is not ready, however complete the rest is.

A recipe that says `project_name` does **not** name a top-level folder after the project: the wizard already makes the folder from the name, and the same fact would become a folder twice.

## page - the address of this file's own page

Set it whenever it can be computed. Unset, it falls back to the step's address - the album - the same for every file. It is also the request's referer, so change it on a working recipe only with a measurement. `fill.page` in the report.

## name - what people call it

From the caption or title the site shows, not from the address. **Add the id at the end when names repeat**, or they part with `~1` suffixes. `name_repeats` in the report lists them.

## description - long text with nowhere else to live

A field of its own, not a line in meta. Look for it on purpose and measure how full it is: `fill.description`.

## meta - short structured values

Author, camera, dimensions, duration, date (with `"as": "date"`).

## expect - what the answer must be

`image/`, `video/mp4`. Checked on headers before the body; a mismatch is filtered out, not a failure. It catches redirect pages saved under picture names.

## segment - folders inside the project, named by the step that fills them

Era, make, model - structure inside the project, never the project's own name.

## check - addresses that prove it lives

One per kind of page. Take the awkward spelling when there is one: a photo inside a gallery tests the route and the reduction to the album at once.

## The number

**Compare the run's count with the count the site states.** Not equal - look for a silent cut, do not celebrate. `stopped_at_limit: true` means every number in the report is a lower bound: run again with a larger `max_steps`.
