{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "urn:ausca:offer:transcription:input:v1",
  "type": "object",
  "additionalProperties": false,
  "required": ["artifact", "media_format", "language_code"],
  "properties": {
    "artifact": {
      "allOf": [
        {"$ref": "urn:ausca:schema:artifact-commitment:v1"},
        {
          "properties": {
            "media_type": {
              "enum": [
                "audio/amr",
                "audio/flac",
                "audio/mp4",
                "audio/mpeg",
                "audio/ogg",
                "audio/wav",
                "audio/webm",
                "video/mp4",
                "video/webm"
              ]
            }
          }
        }
      ]
    },
    "media_format": {
      "type": "string",
      "enum": ["amr", "flac", "m4a", "mp3", "mp4", "ogg", "wav", "webm"]
    },
    "language_code": {
      "type": "string",
      "pattern": "^[a-z]{2,3}(?:-[A-Z]{2})?$",
      "maxLength": 16
    }
  },
  "oneOf": [
    {"properties": {"media_format": {"const": "amr"}, "artifact": {"properties": {"media_type": {"const": "audio/amr"}}}}},
    {"properties": {"media_format": {"const": "flac"}, "artifact": {"properties": {"media_type": {"const": "audio/flac"}}}}},
    {"properties": {"media_format": {"const": "m4a"}, "artifact": {"properties": {"media_type": {"const": "audio/mp4"}}}}},
    {"properties": {"media_format": {"const": "mp3"}, "artifact": {"properties": {"media_type": {"const": "audio/mpeg"}}}}},
    {"properties": {"media_format": {"const": "mp4"}, "artifact": {"properties": {"media_type": {"enum": ["audio/mp4", "video/mp4"]}}}}},
    {"properties": {"media_format": {"const": "ogg"}, "artifact": {"properties": {"media_type": {"const": "audio/ogg"}}}}},
    {"properties": {"media_format": {"const": "wav"}, "artifact": {"properties": {"media_type": {"const": "audio/wav"}}}}},
    {"properties": {"media_format": {"const": "webm"}, "artifact": {"properties": {"media_type": {"enum": ["audio/webm", "video/webm"]}}}}}
  ]
}
