{
  "$id": "https://opendatafabric.org/schemas/datasets/v1alpha1/ExecuteTransform",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "description": "Indicates that derivative transformation has been performed.",
  "type": "object",
  "required": [
    "queryInputs"
  ],
  "properties": {
    "queryInputs": {
      "type": "array",
      "items": {
        "$ref": "https://opendatafabric.org/schemas/datasets/v1alpha1/ExecuteTransformInput",
        "unevaluatedProperties": false
      },
      "description": "Defines inputs used in this transaction. Slices corresponding to every input dataset must be present."
    },
    "prevCheckpoint": {
      "type": "string",
      "format": "multihash",
      "description": "Hash of the checkpoint file used to restore transformation state, if any."
    },
    "prevOffset": {
      "type": "integer",
      "format": "uint64",
      "description": "Last offset of the previous data slice, if any. Must be equal to the last non-empty `newData.offsetInterval.end`."
    },
    "newData": {
      "$ref": "https://opendatafabric.org/schemas/datasets/v1alpha1/DataSlice",
      "description": "Describes output data written during this transaction, if any.",
      "unevaluatedProperties": false
    },
    "newCheckpoint": {
      "$ref": "https://opendatafabric.org/schemas/datasets/v1alpha1/Checkpoint",
      "description": "Describes checkpoint written during this transaction, if any. If an engine operation resulted in no updates to the checkpoint, but checkpoint is still relevant for subsequent runs - a hash of the previous checkpoint should be specified.",
      "unevaluatedProperties": false
    },
    "newWatermark": {
      "type": "string",
      "format": "date-time",
      "description": "Last watermark of the output data stream, if any. Initial blocks may not have watermarks, but once watermark is set - all subsequent blocks should either carry the same watermark or specify a new (greater) one. Thus, watermarks are monotonically non-decreasing."
    }
  }
}
