* Cover the ids a send gets back where the SMSC named only some of them
* Say undefined where the SMSC named no id for a segment it took
* Record why the merger takes the wider type, and de-duplicate the interop narrowing
* Guard the numbering hole the merger must refuse, and correct the phase record
* Regression tests for the alphabet a GSM message declares
* Declare the alphabet a GSM message is actually written in
* Reflow the composing-by-hand paragraph
* Drop the ASCII alias SMPP's flat table shares with the option's own
* Bound the receipt test's wait and tighten the notes around it
* Refuse a relative validity period the SMPP time format cannot hold
* Export unencodableText(), so a caller can word a refusal as the library does
* Name the refusal rule in the README, and correct what it claims
* Word the period refusal by what the encoder spells, and keep unencodableText() internal
* Correct the decision bullet premise about what the relative format holds
* Close the stability nits on the time guard and its tests
* Regression tests for a body the PDU's own data_coding cannot carry
* Refuse a body the PDU's own data_coding cannot carry, in the codec both send paths build through
* Record the codec's body refusal, and drop two todo entries it and the interop run close
* Regression tests for the aliased body TLV and the data_coding short_message settles
* Find the body TLV by tag id, leave data_coding to the field that will be read, and correct the record
* Record the two architecture findings this change does not close
* Regression tests for a duplicated body tag and a short_message the wire never carries
* Resolve every body TLV against the field that will be read, and move TLV writing to its table
* Regression tests for a body only the TLV carries and an empty short_message
* Let only octets the command writes settle the alphabet, and stop shadowing the TLV table
* Regression tests for a named alphabet and a time that cannot carry the send
* Refuse a message the named alphabet cannot carry, and a time nobody can read
* Close the architecture review: a builder that cannot drop a time, and docs that hold
* Refuse a time of no known kind, and clamp a relative period to what the format holds
* Reflow the decision record and name the clamp in its test
* Regression tests for the concatenated segment budget and the encoding-name door
* Budget unpacked segments at 134 octets, and export isEncodingName
* Name the length a Latin-1 message starts costing more segments at
* Fold the totality clause into hard rule 1, and log the unrepresentable-alphabet finding
* Make the maxSegments regression discriminate, and drop the narrating comments
* State the per-alphabet capacities accurately, and log the invalid-date path
* Regression tests for the GSM 03.38 message class behind sms.flash
* Read the GSM 03.38 message class where the spec puts it, and refuse a flash message no alphabet can carry
* Keep the code span in the message-class decision on one line
* Stop offering the flash message class as an alphabet, and check the encoding option by name
* Settle every refusable send option in one check, and record what the review left open
* Say what the flash refusal and the encoding option actually do
* Keep the README off the alphabet whose long messages do not fit
* Log an unmergeable receipt and correct the README where it overclaims
* Name decodeMessage's arguments and pin the hook's keepalive and unbind
* Let the test name carry what its comment restated
* Fixtures for the receipt bodies operator documentation publishes
* Read the stat:FAILED several operators write as UNDELIVERABLE
* Cover the 16-bit UDH concatenation element with a fixture
* Record phase 9 of the interoperability plan
* Share the dummy SMSC and tighten the operator fixtures
* Correct what the test conventions claim about the doubles and the tree
* Read a receipt date that carries its century
* Read the stat spelling CM.com publishes
* Say what the receipt status table actually holds
* Regression tests for the messaging mode on sendSms()
* Let sendSms() name the esm_class messaging mode
* Document the messaging mode option and the decision behind it
* Name the constants move for migrating consumers and share the refusal's value naming
* Cover the messaging-mode refusals through submitSms()
* Refuse transaction mode and a report under datagram mode on sendSms()
* Narrow the mode checker and name the default mode once
* Regression tests for inbound sar_* concatenation
* Reassemble a concatenated message segmented with the sar_* TLVs
* Record the sar_* fix in the jasmin and Java-client findings
* Name the sar_* TLVs in the refusal, and separate group keys the addresses cannot forge
* Name the field a refused segment got wrong, and key groups on a separator no address holds
* Bound the new session tests, and derive Concat from the UDH fields