%YAML 1.1
---
$schema: "http://stsci.edu/schemas/yaml-schema/draft-01"
id: "http://stsci.edu/schemas/gwcs/grating_equation-1.1.0"

title: >
  A grating equation model.
description: |
  Supports two models:
   - Given incident angle and wavelength compute the refraction/difraction angle.
   - Given an incident angle and a refraction angle compute the wavelength.

examples:
  -
    - AnglesFromGratingEquation3D model.

    - |
        !<tag:stsci.edu:gwcs/grating_equation-1.1.0>
          groove_density: 2700.0
          order: 2.0
          output: angle

  -
    - WavelengthFromGratingEquation model.

    - |
        !<tag:stsci.edu:gwcs/grating_equation-1.1.0>
          groove_density: 2700.0
          order: 2.0
          output: wavelength

allOf:
  - $ref: "http://stsci.edu/schemas/asdf/transform/transform-1.2.0"
  - type: object
    properties:
      groove_density:
        description: |
          The groove density of the grating
        anyOf:
          - type: number
          - $ref: "http://stsci.edu/schemas/asdf/unit/quantity-1.1.0"
      order:
        description: |
          Spectral order
        type: number
      output:
        type: string
        description: |
          indicates which quantity the grating equation is solved for.
        enum: [wavelength, angle]
    required: [groove_density, order, output]
...
