$schema: http://json-schema.org/draft-07/schema#

additionalProperties: false
required: [name, category, schedule]
properties:
  name: {type: string}
  subtitle: {type: string}
  abbreviation: {type: string}
  category: {type: string}
  image: {type: string}
  isNotice: {type: boolean}
  noticeMessage: {type: string}
  links:
    type: array
    items: {$ref: '#/definitions/links'}
  schedule:
    type: array
    items: {$ref: '#/definitions/schedule'}
  breakSchedule:
    type: object


definitions:
  links:
    additionalProperties: false
    required: [title, url]
    properties:
      title: {type: string}
      url: {type: url}
  schedule:
    additionalProperties: false
    required: [title, hours]
    properties:
      title: {type: string}
      notes: {type: string}
      closedForChapelTime: {type: boolean}
      isPhysicallyOpen: {type: boolean}
      hours:
        type: array
        items: {$ref: '_defs.json#/definitions/day'}

$schema: http://json-schema.org/draft-07/schema#

additionalProperties: false
required: [name, category, schedule]
properties:
  name: {type: string}
  subtitle: {type: string}
  abbreviation: {type: string}
  category: {type: string}
  image: {type: string}
  isNotice: {type: boolean}
  noticeMessage: {type: string}
  links:
    type: array
    items: {$ref: '#/definitions/links'}
  schedule:
    type: array
    items: {$ref: '#/definitions/schedule'}
  breakSchedule:
    type: object


definitions:
  links:
    additionalProperties: false
    required: [title, url]
    properties:
      title: {type: string}
      url: {type: string}
  schedule:
    additionalProperties: false
    required: [title, hours]
    properties:
      title: {type: string}
      notes: {type: string}
      closedForChapelTime: {type: boolean}
      isPhysicallyOpen: {type: boolean}
      hours:
        type: array
        items: {$ref: '_defs.json#/definitions/day'}

Update type of url in hours schema
Update type of url in hours schema
