DRY out JSON Schema repetition

* Embed schemas with `schema_for`