Rename .case to .tag (and maybe more)
Change the stags spec (see spec.md)
- tags can be named however you want
specsobject added to Type
- Type has a list of tags instead of cases being keys on the type
Specs clean up the source
- Specs make it possible to have typeclasses
- Specs make it possible to have generated placeholders: #54
- Behaviours/functions clearly delineated by spec
- Easier to extend, and contribute
A lot of compromises were made to cater for statically defined types (pojo structs, classes, named functions).
I've found I rarely use that, but still really like everything else about stags, serialization, an open spec, performance, type checking, clarity etc.
So this PR changes the spec to accommodate real world usage, which is exactly what this project is all about.
Breaking changes, removes
Maybe (keeps `maybe).