# Specification
1. A configured bootstrap handle is normalized, persisted, whitelisted, and
authorized to add other handles.
2. Authorization begins with handles but becomes bound to stable numeric
Telegram user IDs when matching identities are observed.
3. Once bound, a username change does not revoke a numeric identity.
4. The Telegram transport receives only the numeric whitelist required for
admission and group-membership checks.
5. Only a whitelisted user with `can_add_users` may add another handle.
6. Opaque Telegram group IDs are observed without storing Telegram chat IDs or
transport state.
7. Users and groups may be associated with one canonical Kweb root node.
Replaying the same association is idempotent; assigning a different root
after completion is a conflict.
8. The library preserves existing SQLite directory data and schema semantics.
9. The library owns no HTTP routes, Telegram network transport, Kweb node
creation, orchestration, process listener, or credential vault.
10. The Telegram anonymous-group pseudo-user never becomes an observed Kennedy
identity or whitelist candidate.