Overhaul of spec.md re: optional type declarations