# What is built

Each feature not built yet is `toolchain.not_built_yet` where it is used.

| Feature | Status |
|---|---|
| Entities, their fields, references, unique rules, indexes and stores | Built. |
| Migrations, computed backfills and the test database | Built. |
| PostgreSQL over TLS and through Hyperdrive | Partly built: both connect. Not built yet: checking a Hyperdrive configuration's caching on a real deploy. |
| D1, and actions on it as reads first and one checked batch of writes | Not built yet. |
| Lifecycles | Built. |
| Structured values stored as JSON, and their migrations | Partly built: each is stored whole, read back and migrated. Not built yet: conditions on them, a `unique:` or index over them, and an update by `id` that works one out in the database. |
| The check of every stored value on read | Built. |
| `CHECK` constraints holding fields' rules in the database | Not built yet. |
| Standard types stored in named columns, and the standard collections | Partly built: each is stored and read back. Not built yet: comparing or ordering by them in a query. |
| Manifest nodes | Built: a node for each entity's placement, unique rule, index and reference, with `references` edges between entities, one for each system table and migration snapshot, and one for each lifecycle and transition (`lifecycle Todo`, `transition Todo.delete`, with its `when:`, whether it can refuse a record and the fields it sets). |
| Removing data | Built: retiring a field or an entity, moving an entity to another store and `--drop`, each needing its [acceptance](/docs/acceptances.md) ([Removing data](/docs/migrations.md#removing-data)). Copying an entity's records to its new store is yours to do. |
| Other schema changes in `jadpo migrate new` | Not built yet: a new `pattern:` on a stored field, and other column type changes. Turning `encrypted:` on or off is refused for good: it needs a data migration ([Encrypted fields](/docs/encrypted-fields.md)). |
| A worked-out backfill for a field that allows less | Not built yet. |
| A backfill in Jadpo that fills a value held in several columns, or reads a field held so or as JSON | Not built yet. |
| Entities in Redis and record caches (`caches:`) | Not built yet. Clearing only the cached entries a change affects isn't designed yet. |
| Index kinds other than geographic and HNSW | Not built yet. |
| A database implied only when something needs one | Not built yet: it comes with the first feature that can run without one. |
| Seeds and `jadpo seed` | Built. |
| `jadpo rename` | Not built yet: it writes the identity registry ([Tools](/docs/tooling.md)). |
