addedInput schema / properties / manifest / properties
Added value: +{
+ "errorCode": {
+ "anyOf": [
+ {
+ "type": "string"
+ },
+ {
+ "type": "null"
+ }
+ ],
+ "description": "Stable error code when the run failed or was cancelled."
+ },
+ "mode": {
+ "description": "Run mode reported by QuokkaPix.",
+ "enum": [
+ "single",
+ "batch"
+ ],
+ "type": "string"
+ },
+ "outputs": {
+ "description": "Detailed output entries.",
+ "items": {
+ "additionalProperties": {},
+ "description": "One output file or ZIP entry from quokkapix-result.json.",
+ "properties": {
+ "format": {
+ "description": "Output format such as webp, jpg, png, pdf or zip.",
+ "type": "string"
+ },
+ "outputHeight": {
+ "description": "Output image height in pixels.",
+ "type": "number"
+ },
+ "outputName": {
+ "description": "Output file or ZIP entry name.",
+ "type": "string"
+ },
+ "outputWidth": {
+ "description": "Output image width in pixels.",
+ "type": "number"
+ },
+ "sizeBytes": {
+ "description": "Output byte size when available.",
+ "type": "number"
+ },
+ "sourceHeight": {
+ "description": "Original image height in pixels.",
+ "type": "number"
+ },
+ "sourceName": {
+ "description": "Original input file name when available.",
+ "type": "string"
+ },
+ "sourceWidth": {
+ "description": "Original image width in pixels.",
+ "type": "number"
+ },
+ "warnings": {
+ "description": "Warnings for this output entry.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "processingMs": {
+ "description": "Processing time in milliseconds when available.",
+ "type": "number"
+ },
+ "source": {
+ "additionalProperties": {},
+ "description": "Source file summary.",
+ "properties": {
+ "count": {
+ "description": "Number of source files.",
+ "type": "number"
+ },
+ "totalBytes": {
+ "description": "Total input bytes when available.",
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "status": {
+ "description": "Terminal status, expected to be done for a successful run.",
+ "type": "string"
+ },
+ "success": {
+ "description": "Whether QuokkaPix considered the run successful.",
+ "type": "boolean"
+ },
+ "tool": {
+ "description": "QuokkaPix tool/workflow that produced the output.",
+ "type": "string"
+ },
+ "warnings": {
+ "description": "Run-level warnings.",
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ }
+}
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"
+ }
+}