Correctly handle inline fields that aren't present in the parent struct (i.e. because we're reading an older version of the struct that lacked those fields).
Require fixed struct data section size to be in bytes, not words, for clarity.
Detect and disallow List(Inline(Bool, n)) as it is not currently implemented correctly (and may be difficult to implement correctly-yet-efficiencly).
Document inline types, new struct list encoding rules, etc.
Implement 'Object' field type, which can be any pointer type.  The caller specifies the type when calling the accessors.
Redo IDs.  They now look like ordinals, except that they are 64-bit unique integers.
Document IDs and 'Object' type.
Add note about ID collisions.
Add IDs to benchmark schemas.
Specify how derived IDs are generated.
Implement code generator plugins.  The Cap'n Proto compiler, when given -o foo, invokes the binary capnp-foo and passes the schema, in Cap'n Proto format, to its stdin.  The binary is executed with the current working directory set to the desired output directory, so all it has to do is write the files.
Delete Code Friday:  Inline structs/lists/data are too complicated for not enough benefit.  There goes a week of my life that I'll never get back.
Simplify more after removing inline types.
Starting on dynamic message manipulation (manipluating messages without knowing the schema, or without compiling in the schema).
Restore ability to upgrade from List(Bool) to List(T) where T is a struct whose @0 field is of type Bool.  I previously disallowed this to reduce complexity, but it turned out to actually increase complexity.
Various stuff in support of dynamic API.
Various refactoring and cleanup.
Simplify generated code by using PointerHelpers templates.
Dynamic API WIP.
More dynamic API WIP.