JSON Schema Design: Required Fields, $ref, and Types