# title
CryptoSignalsReview Telegram Desktop JSON inspection schema

# description
Stage-one structural companion for the browser-local Telegram Desktop adapter. A full export is inspected first, then the explicitly selected chat is evaluated against $defs.selectedChat and converted by the duplicate-aware bounded runtime. Passing this root schema alone does not establish importability, authenticity or provenance.

# x-csr-validation-sequence[]
Validate the source file against this root inspection envelope.

# x-csr-validation-sequence[]
Require an explicit chat selection when more than one chat is present.

# x-csr-validation-sequence[]
Validate that selected chat against $defs.selectedChat and enforce the aggregate runtime limits.

# x-csr-validation-sequence[]
Convert mapped fields and calculate native_payload_sha256 for every unrepresented native property set.

# x-csr-parser-boundaries.telegramHexEscapes
Only two-digit C0 control escapes from \x00 through \x1f are accepted during native result.json inspection.

# x-csr-user-supplied-metadata.boundary
Capture time, coverage window and completeness are user-supplied assertions because Telegram Desktop result.json does not provide a trustworthy export-completion timestamp or the reader's intended coverage declaration. The adapter never derives those values from file metadata or the latest message.

# $defs.identifier.description
A canonical non-negative decimal identifier. The runtime parser also rejects exponent, fraction, sign, negative-zero and unsafe numeric lexemes before schema use.

# $defs.unixTimestamp.description
UTC Unix seconds supplied as a canonical decimal string. The runtime additionally limits the value to 253402300799.

# $defs.selectedChat.description
Apply this definition to the explicitly selected chat before conversion. Other chats in a full export are inspected but are not converted; the runtime separately enforces the aggregate 5,000-chat limit.