--- /dev/null
+The following needs doing before a 1.0 release:
+1. String serialization settings (defaults):
+ a. Width (80)
+ b. Maintain tags for default types (true)
+ c. Handling of non-displayable and non-ascii characters
+2. String deserialization settings (defaults):
+ a. Default string type (utf-8)
+ b. Defailt integer type (int32)
+ c. Default decimal type (double)
+ d. Maintain tags universally, not at all, or only for non-default types (universally)
+3. Binary serialization settings (defaults):
+ a. Default string type (utf-8)
+ b. Default integer type (int32)
+ c. Default decimal type (double)
+4. Binary deserialization settings (defaults):
+ a. Maintain tags universally, not at all, or only for non-default types (universally)
+ b. Return lists as iterables or as lists (lists)
+ c. Return dictionaries as OrderedDicts, dicts, lists of key-value pairs, or iterables of key-value pairs (OrderedDict)
+5. Add unsinged integer types.
+6. Think about type signatures for string serialization (do we want 1i32 or 1int32?).
+7. Include the string encoding byte for dictionary keys.
+ a. It adds only 1 byte per key.
+ b. It prevents excessively long keys in utf16 friendly languages.
+8. Consider limiting key string length to 2^16 or even 2^8:
+ a. It saves 2 or 3 bytes per key, and keys are typically short.
+ b. Perhaps we should create a struct type with this feature.
+9. Add a rationale doc that includes rationale for the technical decisions made.
+10. Binary deserialization needs tooling for lazy deserializtion and deserializing from buffers.
+11. String escaping in string serialization and deserialization.
+12.