{"additionalProperties":false,"properties":{"output":{"$id":"urn:rowlight-api:response:0.1.0","$schema":"https://json-schema.org/draft/2020-12/schema","additionalProperties":false,"properties":{"algorithm":{"const":"rowlight-csv-repair-v1"},"changed":{"type":"boolean"},"changes":{"items":{"additionalProperties":false,"properties":{"column":{"maximum":39,"minimum":0,"type":"integer"},"columnName":{"type":"string"},"kind":{"enum":["trim_whitespace","decimal_comma"]},"original":{"type":"string"},"proposed":{"type":"string"},"sourceRow":{"maximum":1000,"minimum":1,"type":"integer"}},"required":["kind","sourceRow","column","columnName","original","proposed"],"type":"object"},"maxItems":80000,"type":"array"},"counts":{"additionalProperties":false,"properties":{"convertedCells":{"maximum":40000,"minimum":0,"type":"integer"},"inputRows":{"maximum":1000,"minimum":0,"type":"integer"},"outputRows":{"maximum":1000,"minimum":0,"type":"integer"},"removedRows":{"maximum":1000,"minimum":0,"type":"integer"},"trimmedCells":{"maximum":40000,"minimum":0,"type":"integer"}},"required":["inputRows","outputRows","trimmedCells","removedRows","convertedCells"],"type":"object"},"csv":{"description":"Exact original input on no-op; changed data retains BOM presence and uses CRLF between records, with embedded quoted newlines preserved.","type":"string"},"operationOrder":{"items":{"enum":["trim_whitespace","remove_exact_duplicate_rows","selected_decimal_comma"]},"maxItems":3,"type":"array","uniqueItems":true},"options":{"additionalProperties":false,"properties":{"decimalCommaColumns":{"description":"Caller-selected zero-based column indexes. Domain additionally rejects indexes outside the actual CSV header width. Empty means no decimal conversion.","items":{"maximum":39,"minimum":0,"type":"integer"},"maxItems":40,"type":"array","uniqueItems":true},"removeDuplicates":{"type":"boolean"},"trimWhitespace":{"type":"boolean"}},"required":["trimWhitespace","removeDuplicates","decimalCommaColumns"],"type":"object"},"outputSha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"removedRows":{"items":{"additionalProperties":false,"properties":{"duplicateOfSourceRow":{"maximum":1000,"minimum":1,"type":"integer"},"kind":{"const":"remove_duplicate"},"originalValues":{"items":{"type":"string"},"maxItems":40,"minItems":1,"type":"array"},"sourceRow":{"maximum":1000,"minimum":1,"type":"integer"},"valuesAfterTrim":{"items":{"type":"string"},"maxItems":40,"minItems":1,"type":"array"}},"required":["kind","sourceRow","duplicateOfSourceRow","originalValues","valuesAfterTrim"],"type":"object"},"maxItems":1000,"type":"array"},"rowMapping":{"items":{"additionalProperties":false,"properties":{"duplicateOfSourceRow":{"maximum":1000,"minimum":1,"type":["integer","null"]},"outputRow":{"maximum":1000,"minimum":1,"type":["integer","null"]},"sourceRow":{"maximum":1000,"minimum":1,"type":"integer"}},"required":["sourceRow","outputRow","duplicateOfSourceRow"],"type":"object"},"maxItems":1000,"type":"array"},"schemaVersion":{"const":1},"serialization":{"additionalProperties":false,"properties":{"mode":{"enum":["original_bytes","canonical_crlf"]},"utf8Bom":{"type":"boolean"}},"required":["mode","utf8Bom"],"type":"object"},"sourceSha256":{"pattern":"^[0-9a-f]{64}$","type":"string"},"unresolvedIssues":{"items":{"additionalProperties":false,"properties":{"column":{"maximum":39,"minimum":0,"type":["integer","null"]},"columnName":{"type":["string","null"]},"duplicateOfColumn":{"maximum":39,"minimum":0,"type":"integer"},"duplicateOfSourceRow":{"maximum":1000,"minimum":1,"type":"integer"},"kind":{"enum":["blank_header","duplicate_header","missing_value","untrimmed_whitespace","ambiguous_decimal_comma","non_numeric_selected_column","duplicate_row"]},"sourceRow":{"maximum":1000,"minimum":0,"type":"integer"},"value":{"type":"string"}},"required":["kind","sourceRow","column","columnName","value"],"type":"object"},"maxItems":121000,"type":"array"},"version":{"const":"0.1.0"}},"required":["schemaVersion","algorithm","version","changed","csv","sourceSha256","outputSha256","serialization","options","operationOrder","counts","rowMapping","changes","removedRows","unresolvedIssues"],"title":"Stateless Rowlight repair change manifest","type":"object","x-maxCompactJsonUtf8Bytes":4194304}},"required":["output"],"type":"object"}