## uidata.json structure

The included cookiecutter database is based upon an extraction from GitHub,
filtered, and restructured for easier UI application. Entries typically
contain:

    "vnd/pkg": {
        "name": "vnd/pkg",
        "short": "pkg",
        "description": "...",
        "url":
        "repo":
        "homepage": null,
        "created_at": "2011-11-11T11:11:11Z",
        "updated_at": "2021-02-22T22:22:22Z",
        "size": 222,
        "stars": 2,
        "api": "lang",
        "has_wiki": true,
        "forks": 1,
        "license": "MIT",
        "tickets": 0,
        "default_branch": "trunk",
        "_disabled": false,
        "keywords": " from `_keywords` in cookiecutter.json ",
        "dir": "└── lib\n",
        "readme": "README.md contents",
        "cookiecutterjson_url":
        "config": [
            {
                "type": "str",
                "name": "project_name",
                "value": "mypkg",
                "class": "cookiecutter",
                "description": " taken from README table, if any "
            }
        ]
    }

Most fields are literal copies. Whereas `dir` is a textual transformation
of the /tree list. And `config` a converted cookiecutter.json list. The
`api` field is either just GitHubs detected repository language (often
fairly off), or an extract from the repository name, or whatever was
specified as [`_api` in cc.json](wiki/improve).

The `"score":{}` dict will be freshly recreated on startup, so is not
in the template database.


### config

The config field list is an upmarket version of the cookiecutter.json dict.
Roughly compatible with the
structure. Albeit CD is using a custom input window anyway.

Notably the `description` field cannot be set other than from the README.
It should contain a table listing each template variable:

     | `cc_varname` | Explanation ... |

(Seen some discussion on a [cc.json 2.0
So this might be a temporary thing. Still useful to users, btw!)

See also how to [Improve your cookiecutters.json](wiki/improve)