First cut of full schemas

This might be *slightly* cleaner with the `tap` method:

```ruby
let(:manual_without_title) { valid_manual.tap {|m| m.delete(:title) } }
```