{
  "$comment": "https://json-e.js.org",
  "$defs": {
    "jsone-value": {
      "oneOf": [
        {
          "$ref": "#"
        },
        {
          "type": "array",
          "items": {
            "$ref": "#"
          }
        },
        {
          "type": ["null", "boolean", "number", "string", "integer"]
        }
      ]
    },
    "jsone-array": {
      "type": "array",
      "items": {
        "$ref": "#/$defs/jsone-value"
      }
    },
    "jsone-object-array": {
      "type": "array",
      "items": {
        "$ref": "#"
      }
    }
  },
  "$id": "https://www.sourcemeta.com/schemas/vendor/json-e@1.json",
  "$schema": "https://json-schema.org/draft/2019-09/schema",
  "additionalProperties": {
    "$ref": "#/$defs/jsone-value"
  },
  "properties": {
    "$eval": {
      "type": "string"
    },
    "$json": {
      "$ref": "#/$defs/jsone-value"
    },
    "$if": {
      "type": "string"
    },
    "$then": {
      "$ref": "#/$defs/jsone-value"
    },
    "$else": {
      "$ref": "#/$defs/jsone-value"
    },
    "$flatten": {
      "$ref": "#/$defs/jsone-array"
    },
    "$flattenDeep": {
      "$ref": "#/$defs/jsone-array"
    },
    "$fromNow": {
      "type": "string"
    },
    "$let": {
      "type": "object",
      "additionalProperties": {
        "additionalProperties": {
          "$ref": "#"
        }
      }
    },
    "in": {
      "$ref": "#"
    },
    "$map": {
      "$ref": "#/$defs/jsone-array"
    },
    "$match": {
      "$ref": "#"
    },
    "$switch": {
      "$ref": "#"
    },
    "$merge": {
      "$ref": "#/$defs/jsone-object-array"
    },
    "$mergeDeep": {
      "$ref": "#/$defs/jsone-object-array"
    },
    "$sort": {
      "anyOf": [
        {
          "$ref": "#"
        },
        {
          "type": "array",
          "items": {
            "type": "number"
          }
        }
      ]
    },
    "$reverse": {
      "$ref": "#"
    }
  },
  "title": "JSON-e templates",
  "type": "object"
}
