Design specifications

When adding a new spec, please use specs/template.rst as a starting point.