{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://sofinder.sohophp.app/schema/image-actions.schema.json",
  "title": "SoFinder image action list",
  "type": "array",
  "minItems": 1,
  "maxItems": 10,
  "items": {
    "oneOf": [
      {"type": "object", "required": ["type", "x", "y", "width", "height"], "properties": {"type": {"const": "crop"}, "x": {"type": "integer", "minimum": 0}, "y": {"type": "integer", "minimum": 0}, "width": {"type": "integer", "minimum": 1, "maximum": 4096}, "height": {"type": "integer", "minimum": 1, "maximum": 4096}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}},
      {"type": "object", "required": ["type", "degrees"], "properties": {"type": {"const": "rotate"}, "degrees": {"enum": [0, 90, 180, 270]}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}},
      {"type": "object", "required": ["type", "width", "height"], "properties": {"type": {"const": "resize"}, "width": {"type": "integer", "minimum": 0, "maximum": 4096}, "height": {"type": "integer", "minimum": 0, "maximum": 4096}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}},
      {"type": "object", "required": ["type", "name"], "properties": {"type": {"const": "preset"}, "name": {"type": "string", "minLength": 1}}},
      {"type": "object", "required": ["type", "format", "quality"], "properties": {"type": {"const": "optimize"}, "format": {"enum": ["original", "jpeg", "png", "webp", "avif", "gif", "bmp"]}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}},
      {"type": "object", "required": ["type", "text"], "properties": {"type": {"const": "watermarkText"}, "text": {"type": "string", "minLength": 1, "maxLength": 200}, "position": {"$ref": "#/$defs/position"}, "opacity": {"type": "integer", "minimum": 1, "maximum": 100}, "scale": {"type": "integer", "minimum": 5, "maximum": 80}, "color": {"type": "string", "pattern": "^#[0-9A-Fa-f]{6}$"}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}},
      {"type": "object", "required": ["type", "resource", "path"], "properties": {"type": {"const": "watermarkImage"}, "resource": {"type": "string", "minLength": 1}, "path": {"type": "string", "minLength": 1}, "position": {"$ref": "#/$defs/position"}, "opacity": {"type": "integer", "minimum": 1, "maximum": 100}, "scale": {"type": "integer", "minimum": 5, "maximum": 80}, "quality": {"type": "integer", "minimum": 1, "maximum": 100}}}
    ]
  },
  "$defs": {"position": {"enum": ["top-left", "top-right", "center", "bottom-left", "bottom-right"]}}
}
