bad2ed866c
prefers_fresh_final_streaming read only the raw direct_messages_topic_id key; the adapter's canonical accessor _metadata_direct_messages_topic_id also accepts the documented telegram_direct_messages_topic_id alias (treated as equivalent in gateway/delivery.py), so an alias-only lane would still flatten tables. Route the gate through the accessor and pin the alias with a regression (mutation-checked: raw-key gate fails it). Also reshape the happy-path endpoint assertion into the actual invariant (sendRichMessage present, no rich draft frames) instead of a frozen call list. Surfaced during review of PR #91436.