description: |-
  The extent of the features in the collection. In the Core only spatial and temporal
  extents are specified. Extensions may add additional members to represent other
  extents, for example, thermal or pressure ranges.

  An array of extents is provided for each extent type (spatial, temporal). The first item
  in the array describes the overall extent of the data. All subsequent items describe more
  precise extents, e.g., to identify clusters of data. Clients only interested in the
  overall extent will only need to access the first extent in the array.
type: object
properties:
  spatial:
    description: |-
      The spatial extent of the features in the collection.
    type: object
    properties:
      bbox:
        description: |-
          One or more bounding boxes that describe the spatial extent of the dataset.
          In the Core only a single bounding box is supported.
          
          Extensions may support additional areas.
          The first bounding box describes the overall spatial
          extent of the data. All subsequent bounding boxes describe
          more precise bounding boxes, e.g., to identify clusters of data.
          Clients only interested in the overall spatial extent will
          only need to access the first bounding box in the array.
        type: array
        minItems: 1
        items:
          description: |-
            Each bounding box is provided as four or six numbers, depending on
            whether the coordinate reference system includes a vertical axis
            (height or depth):

            * Lower left corner, coordinate axis 1
            * Lower left corner, coordinate axis 2
            * Minimum value, coordinate axis 3 (optional)
            * Upper right corner, coordinate axis 1
            * Upper right corner, coordinate axis 2
            * Maximum value, coordinate axis 3 (optional)

            If the value consists of four numbers, the coordinate reference system is
            WGS 84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84)
            unless a different coordinate reference system is specified in `crs`.

            If the value consists of six numbers, the coordinate reference system is WGS 84
            longitude/latitude/ellipsoidal height (http://www.opengis.net/def/crs/OGC/0/CRS84h)
            unless a different coordinate reference system is specified in `crs`.

            For WGS 84 longitude/latitude the values are in most cases the sequence of
            minimum longitude, minimum latitude, maximum longitude and maximum latitude.
            However, in cases where the box spans the antimeridian the first value
            (west-most box edge) is larger than the third value (east-most box edge).

            If the vertical axis is included, the third and the sixth number are
            the bottom and the top of the 3-dimensional bounding box.

            If a feature has multiple spatial geometry properties, it is the decision of the
            server whether only a single spatial geometry property is used to determine
            the extent or all relevant geometries.
          type: array
          oneOf:
          - minItems: 4
            maxItems: 4
          - minItems: 6
            maxItems: 6
          items:
            type: number
          example:
            - -180
            - -90
            - 180
            - 90
      crs:
        description: |-
          Coordinate reference system of the coordinates in the spatial extent
          (property `bbox`). The default reference system is WGS 84 longitude/latitude.
          In the Core the only other supported coordinate reference system is
          WGS 84 longitude/latitude/ellipsoidal height for coordinates with height.
          Extensions may support additional coordinate reference systems and add
          additional enum values.
        type: string
        enum:
          - 'http://www.opengis.net/def/crs/OGC/1.3/CRS84'
          - 'http://www.opengis.net/def/crs/OGC/0/CRS84h'
        default: 'http://www.opengis.net/def/crs/OGC/1.3/CRS84'
  temporal:
    description: |-
      The temporal extent of the features in the collection.
    type: object
    properties:
      interval:
        description: |-
          One or more time intervals that describe the temporal extent of the dataset.
          In the Core only a single time interval is supported.
          
          Extensions may support multiple intervals.
          The first time interval describes the overall
          temporal extent of the data. All subsequent time intervals describe
          more precise time intervals, e.g., to identify clusters of data.
          Clients only interested in the overall temporal extent will only need
          to access the first time interval in the array (a pair of lower and upper
          bound instants).
        type: array
        minItems: 1
        items:
          description: |-
            Begin and end times of the time interval. The timestamps are in the
            temporal coordinate reference system specified in `trs`. By default
            this is the Gregorian calendar.
            
            The value `null` at start or end is supported and indicates a half-bounded interval.
          type: array
          minItems: 2
          maxItems: 2
          items:
            type: string
            format: date-time
            nullable: true
          example:
            - '2011-11-11T12:22:11Z'
            - null
      trs:
        description: |-
          Coordinate reference system of the coordinates in the temporal extent
          (property `interval`). The default reference system is the Gregorian calendar.
          In the Core this is the only supported temporal coordinate reference system.
          Extensions may support additional temporal coordinate reference systems and add
          additional enum values.
        type: string
        enum:
          - 'http://www.opengis.net/def/uom/ISO-8601/0/Gregorian'
        default: 'http://www.opengis.net/def/uom/ISO-8601/0/Gregorian'
