Document typed production client policy

ober

4c331816ea6b1639dffed9982bd6e45a509c80a9

diff --git a/README.md b/README.md
index a1eed71..fb91b9b 100644
--- a/README.md
+++ b/README.md
@@ -135,9 +135,10 @@ library form:
 ```
 
 `client` expands a named generator-owned template from `templates/<name>.ss`.
-This is the preferred bridge for larger apps while the higher-level Android DSL
-is growing, because application repositories can keep concise Jerboa app specs
-instead of carrying large generated-source fragments.
+The `original-tactics` and `ssd-review` clients are composed exclusively from
+typed Jerboa libraries. Their generated Kotlin is backend output, not source
+text stored in `.ss` strings. `scripts/check-no-raw-kotlin.sh` enforces that
+invariant for both production clients.
 
 All source paths are relative to the app specification and may not contain
 symbolic links. Output paths are descriptor-relative, no-follow, exclusive
@@ -156,10 +157,9 @@ token; remote identifiers are hashed into local filenames and all HTTP, ZIP,
 entry-count, expansion-ratio, and storage budgets are enforced. The precise
 configuration and limits are documented in [SECURITY.md](SECURITY.md).
 
-## Direction
+## Production Client Policy
 
-The upstream typed backend now provides the first structured Kotlin emitter.
-The next Android-specific step is to lower screen/state declarations through
-that same AST instead of the legacy `MainActivity.kt` string emitter, then
-remove raw Kotlin fragments after the two migrated clients are represented as
-typed Jerboa and Android/JVM DSL forms.
+New production Android code must use `typed-kotlin-file` or a typed named
+client module. Raw `kotlin-file`, `kotlin-file-lines`, and `kotlin-source-dir`
+forms remain only as compatibility features for generic generator fixtures;
+they are not permitted in Original Space Tactics or SSD Review.