addedInput schema / properties / recipe / properties
Added value: +{
+ "applySettings": {
+ "additionalProperties": {},
+ "description": "QuokkaPix settings applied before processing starts.",
+ "properties": {
+ "mode": {
+ "description": "Use single for one image or batch for multiple images.",
+ "enum": [
+ "single",
+ "batch"
+ ],
+ "type": "string"
+ },
+ "steps": {
+ "description": "Optional ordered scenario steps. Prefer [{ tool, settings }] for custom multi-step workflows.",
+ "items": {
+ "anyOf": [
+ {
+ "description": "Simple QuokkaPix tool id step, for example resize, background, compress or watermark.",
+ "minLength": 1,
+ "type": "string"
+ },
+ {
+ "description": "Structured scenario step with a tool id and per-step settings.",
+ "properties": {
+ "settings": {
+ "additionalProperties": {},
+ "description": "Settings for this step using the same keys accepted by window.QuokkaPixAgent.applySettings.",
+ "propertyNames": {
+ "type": "string"
+ },
+ "type": "object"
+ },
+ "tool": {
+ "description": "QuokkaPix tool id for this scenario step, for example resize, background, compress or watermark.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "required": [
+ "tool"
+ ],
+ "type": "object"
+ }
+ ],
+ "description": "One step in a QuokkaPix scenario workflow."
+ },
+ "type": "array"
+ },
+ "tool": {
+ "description": "QuokkaPix editor tool id, such as resize, crop, rotate, convert, compress, metadata, background, watermark, effects, rename, pdf, favicon or constructor.",
+ "minLength": 1,
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "description": {
+ "description": "Short explanation of what the recipe prepares.",
+ "type": "string"
+ },
+ "expectedResult": {
+ "additionalProperties": {},
+ "description": "Expected output and QA contract.",
+ "properties": {
+ "output": {
+ "description": "Expected output type, for example zip, image, pdf or json.",
+ "type": "string"
+ },
+ "qa": {
+ "additionalProperties": {},
+ "description": "Machine-readable QA checks for the result manifest.",
+ "properties": {
+ "allowedFormats": {
+ "description": "Allowed output formats for every manifest output entry.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "expectedFormat": {
+ "description": "Required output format, for example webp, jpg, png, pdf or zip.",
+ "type": "string"
+ },
+ "expectedHeight": {
+ "description": "Exact expected output height in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "expectedMinOutputs": {
+ "description": "Minimum number of output entries expected.",
+ "maximum": 9007199254740991,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "expectedOutputKind": {
+ "description": "Expected high-level output kind for QA checks.",
+ "enum": [
+ "single",
+ "batch",
+ "zip",
+ "pdf",
+ "metadata-report",
+ "icon-pack"
+ ],
+ "type": "string"
+ },
+ "expectedWidth": {
+ "description": "Exact expected output width in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "marketplace": {
+ "description": "Marketplace profile name used for human-readable QA context.",
+ "enum": [
+ "shopify",
+ "amazon",
+ "google-merchant"
+ ],
+ "type": "string"
+ },
+ "maxHeight": {
+ "description": "Maximum allowed output height in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "maxOutputKB": {
+ "description": "Recommended maximum output size per non-archive file.",
+ "exclusiveMinimum": 0,
+ "type": "number"
+ },
+ "maxWidth": {
+ "description": "Maximum allowed output width in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "minHeight": {
+ "description": "Minimum recommended output height in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "minWidth": {
+ "description": "Minimum recommended output width in pixels.",
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "requireSquare": {
+ "description": "Require square output dimensions when true.",
+ "type": "boolean"
+ },
+ "visualChecks": {
+ "description": "Visual checks requested by a recipe. Current validator reports these as metadata-only limitations.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ }
+ },
+ "type": "object"
+ },
+ "id": {
+ "description": "Stable recipe id, for example shopify_product_pack.",
+ "minLength": 1,
+ "type": "string"
+ },
+ "requires": {
+ "additionalProperties": {},
+ "description": "Recipe requirements such as maxFiles and payment policy.",
+ "properties": {
+ "maxFiles": {
+ "description": "Maximum files allowed by this recipe.",
+ "maximum": 50,
+ "minimum": 1,
+ "type": "integer"
+ },
+ "payment": {
+ "description": "Whether the recipe normally needs a paid batch/scenario unlock.",
+ "type": "boolean"
+ }
+ },
+ "type": "object"
+ },
+ "title": {
+ "description": "Human-readable recipe title.",
+ "type": "string"
+ }
+}