{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://quadruper.invalid/contracts/geoapi-isochrone-response.v1.schema.json",
  "title": "IsochroneResponse",
  "description": "GET /v2/isochrone 200 body: a GeoJSON FeatureCollection with conditions and attribution as foreign members.",
  "type": "object",
  "properties": {
    "type": { "const": "FeatureCollection" },
    "features": {
      "type": "array",
      "minItems": 1,
      "items": {
        "title": "IsochroneFeature",
        "type": "object",
        "properties": {
          "type": { "const": "Feature" },
          "geometry": { "$ref": "geoapi-common.v1.schema.json#/$defs/polygonal" },
          "properties": {
            "type": "object",
            "properties": { "time_s": { "type": "integer", "minimum": 60, "maximum": 1800 } },
            "required": ["time_s"],
            "additionalProperties": false
          }
        },
        "required": ["type", "geometry", "properties"],
        "additionalProperties": false
      }
    },
    "conditions": { "$ref": "geoapi-common.v1.schema.json#/$defs/conditions" },
    "attribution": { "$ref": "geoapi-common.v1.schema.json#/$defs/attribution" }
  },
  "required": ["type", "features", "conditions", "attribution"],
  "additionalProperties": false
}
