# What is built

| Feature | Status |
|---|---|
| Everything on this page not listed below | Built |
| Keys held as data, with encrypted fields: `crypto.verify_totp`, HS256 in `crypto.verify_jwt`, per-device signatures, storing a `TotpSecret` or a `SecretText` | Not built yet: waits on [Personal data](personal-data.md), after the first build ([the roadmap](https://github.com/jadpo-dev/jadpo/blob/main/docs/roadmap.md)) |
| A `type.standard_exists` or `type.standard_clash` swap of a type already stored or on the wire, and `jadpo rename` | Not built yet: a swap waits on [Records and manifest](records-and-manifest.md), `jadpo rename` on [Tooling](tooling.md) |
| A query comparing or ordering by an amount of money, a one-step update working one out, a backfill of a new required one, and a condition on a JSON-held field | Not built yet: `toolchain.not_built_yet` names each |
| The UK modulus check in `BankAccount` | Not built yet: waits on Vocalink's permission to ship its tables |
| Checking `UnLocode`, `IataAirport`, `IcaoAirport`, `IataAirline` and `Icd10Code` against their lists | Not built yet: waits on licences that allow shipping the lists |
| [Policy](policy.md)'s scopes narrowing `OAuthScope` | Not built yet: waits on [Policy](policy.md) |
| Legacy encodings in the file readers | Not built yet: waits on an application that needs one |
| `jadpo replay`, and a calendar file's writer | Not built yet: `jadpo replay` waits on [Debugging and review](debugging-and-review.md), a calendar file's writer on an application that needs one |
| What [Personal data](personal-data.md) does with each standard type's personal data category | Not built yet: waits on [Personal data](personal-data.md) |
| The rest of geospatial and AI | Partly built: [What is built: Geospatial](geospatial-built.md) and [What is built: AI](ai-built.md) say which parts |
