{"endpoints":[{"method":"POST","path":"/render","description":"Compile a definition and return image/png (one drawing) or application/zip (multiple)."},{"method":"GET","path":"/health","description":"Health check."},{"method":"GET","path":"/doc","description":"This reference."}],"queryParams":[{"name":"scale","type":"int (1–32, default 1)","description":"Upscale factor — each source pixel becomes scale×scale pixels."}],"acceptedContentTypes":["text/plain","application/json"],"jsonBody":{"definition":"string","scale":"int (optional, default 1)"},"syntax":{"order":"NAME → SIZE → COLOR (one or more) → DATA","name":"NAME <name>        — starts a new drawing; name is used as the PNG filename","size":"SIZE <w> <h>       — canvas dimensions (positive integers)","color":"COLOR <sym> <hex>  — maps a symbol character to a color; hex = RRGGBB or RRGGBBAA","symbols":"valid symbols: 0-9, A-Z, a-z, @, $","data":"DATA               — followed by exactly <h> rows of exactly <w> symbol characters"},"example":"NAME smile\nSIZE 5 5\nCOLOR 0 00000000\nCOLOR Y FFD54F\nCOLOR K 212121\nDATA\n0YYY0\nYYYYY\nYKYKY\nYYYYY\n0YYY0"}