{"id":"update-dialect","title":"What do omitted, null, [] and \"\" mean in this PATCH body under merge-patch, JSON Patch or a declared dialect?","description":"For an agent about to send a PATCH or update body: states, per field, what omitted / null / [] / \"\" mean under the declared dialect (RFC 7396 merge patch, RFC 6902 JSON Patch, or caller-declared semantics) and checks the body against stated intents such as 'clear this field', 'leave this alone' or 'set to empty array'. With a target document it applies the patch and compares the result; without one it reasons about the patch alone and says when an intent cannot be verified. Does not know which dialect a given API uses: the caller declares it. Merge patch cannot store a null (null deletes); JSON Patch can.","roi":"Stops 'null means clear' being sent to an API where null deletes, or [] wiping a list the agent meant to leave alone.","audience":"agent-infra","package":"execution-safety-kit","channels":["x402","mcp"],"endpoint":{"method":"POST","url":"https://agents.writerslogic.com/api/v1/update-dialect","path":"/api/v1/update-dialect","contentType":"application/json"},"price":{"amount":"0.005","currency":"USDC","network":"base","perCall":true,"failedCallsCharged":false},"inputSchema":{"type":"object","additionalProperties":false,"required":["dialect","payload"],"properties":{"dialect":{"type":"string","enum":["merge-patch","json-patch","caller"],"description":"merge-patch = RFC 7396, json-patch = RFC 6902 (payload is an array of operations), caller = semantics in callerSemantics."},"payload":{"description":"The PATCH body."},"target":{"description":"Current document, if available. Enables applying the patch and exact checks."},"intents":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["path","expect"],"properties":{"path":{"type":"string","maxLength":300,"description":"JSON Pointer into the document."},"expect":{"type":"string","enum":["unchanged","absent","null","empty-array","empty-string","value"]},"value":{"description":"Required when expect is 'value'."}}}},"callerSemantics":{"type":"object","additionalProperties":false,"description":"Required when dialect is 'caller': what each payload form means in that API.","required":["omitted","null","emptyArray","emptyString"],"properties":{"omitted":{"type":"string","enum":["keep","clear"]},"null":{"type":"string","enum":["clear","set-null","keep","invalid"]},"emptyArray":{"type":"string","enum":["clear","replace","keep"]},"emptyString":{"type":"string","enum":["clear","set","keep"]}}}}},"resultSchema":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"effects":{"type":"array","description":"At most 500 listed, in payload order.","items":{"type":"object","properties":{"path":{"type":"string"},"form":{"type":"string"},"meaning":{"type":"string"}}}},"effectCount":{"type":"integer","description":"Total effects found, which can exceed the number listed."},"verdicts":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"expect":{"type":"string"},"verdict":{"type":"string","enum":["satisfied","violated","unverifiable"]},"detail":{"type":"string"}}}},"applied":{"description":"The document after applying the patch; present only when a target was given and the patch applied."},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"outputSchema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"effects":{"type":"array","description":"At most 500 listed, in payload order.","items":{"type":"object","properties":{"path":{"type":"string"},"form":{"type":"string"},"meaning":{"type":"string"}}}},"effectCount":{"type":"integer","description":"Total effects found, which can exceed the number listed."},"verdicts":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"expect":{"type":"string"},"verdict":{"type":"string","enum":["satisfied","violated","unverifiable"]},"detail":{"type":"string"}}}},"applied":{"description":"The document after applying the patch; present only when a target was given and the patch applied."},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]},"example":{"dialect":"merge-patch","payload":{"nickname":null,"tags":[]},"intents":[{"path":"/nickname","expect":"null"},{"path":"/email","expect":"unchanged"}]},"openapiOperation":{"operationId":"update_dialect","summary":"What do omitted, null, [] and \"\" mean in this PATCH body under merge-patch, JSON Patch or a declared dialect?","description":"For an agent about to send a PATCH or update body: states, per field, what omitted / null / [] / \"\" mean under the declared dialect (RFC 7396 merge patch, RFC 6902 JSON Patch, or caller-declared semantics) and checks the body against stated intents such as 'clear this field', 'leave this alone' or 'set to empty array'. With a target document it applies the patch and compares the result; without one it reasons about the patch alone and says when an intent cannot be verified. Does not know which dialect a given API uses: the caller declares it. Merge patch cannot store a null (null deletes); JSON Patch can.\n\nPrice: 0.005 USDC on Base (x402).","x-x402-price-usdc":"0.005","x-x402-amount":"5000","x-payment-info":{"protocols":["x402"],"price":{"mode":"fixed","currency":"USD","amount":"0.005"}},"x-audience":"agent-infra","x-sample-url":"https://agents.writerslogic.com/api/v1/samples/update-dialect","security":[{"x402":[]},{"apiKey":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":false,"required":["dialect","payload"],"properties":{"dialect":{"type":"string","enum":["merge-patch","json-patch","caller"],"description":"merge-patch = RFC 7396, json-patch = RFC 6902 (payload is an array of operations), caller = semantics in callerSemantics."},"payload":{"description":"The PATCH body."},"target":{"description":"Current document, if available. Enables applying the patch and exact checks."},"intents":{"type":"array","maxItems":100,"items":{"type":"object","additionalProperties":false,"required":["path","expect"],"properties":{"path":{"type":"string","maxLength":300,"description":"JSON Pointer into the document."},"expect":{"type":"string","enum":["unchanged","absent","null","empty-array","empty-string","value"]},"value":{"description":"Required when expect is 'value'."}}}},"callerSemantics":{"type":"object","additionalProperties":false,"description":"Required when dialect is 'caller': what each payload form means in that API.","required":["omitted","null","emptyArray","emptyString"],"properties":{"omitted":{"type":"string","enum":["keep","clear"]},"null":{"type":"string","enum":["clear","set-null","keep","invalid"]},"emptyArray":{"type":"string","enum":["clear","replace","keep"]},"emptyString":{"type":"string","enum":["clear","set","keep"]}}}}},"example":{"dialect":"merge-patch","payload":{"nickname":null,"tags":[]},"intents":[{"path":"/nickname","expect":"null"},{"path":"/email","expect":"unchanged"}]}}}},"responses":{"200":{"description":"Paid result with provenance","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"status":{"type":"string","enum":["pass","fail","unknown","unsupported"],"description":"pass: every rule held. fail: a rule was violated (see witnesses). unknown: the input lacks the evidence to decide. unsupported: outside what this engine covers. Missing evidence is never a pass."},"effects":{"type":"array","description":"At most 500 listed, in payload order.","items":{"type":"object","properties":{"path":{"type":"string"},"form":{"type":"string"},"meaning":{"type":"string"}}}},"effectCount":{"type":"integer","description":"Total effects found, which can exceed the number listed."},"verdicts":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"expect":{"type":"string"},"verdict":{"type":"string","enum":["satisfied","violated","unverifiable"]},"detail":{"type":"string"}}}},"applied":{"description":"The document after applying the patch; present only when a target was given and the patch applied."},"witnesses":{"type":"array","items":{"type":"object","properties":{"ruleId":{"type":"string"},"detail":{"type":"string"},"path":{"type":"string","description":"JSON pointer or dotted path into the input."},"offset":{"type":"integer"},"index":{"type":"integer"},"expected":{"description":"What the rule required."},"actual":{"description":"What the input had."}}}},"versions":{"type":"object","description":"Every semantic dependency of this answer (engine, tables and their as-of dates, tokenizer, calendar, rounding profile)."},"limits":{"type":"array","items":{"type":"string"}},"deterministic":{"type":"boolean","description":"Always true: pure code, no model."}}},"_provenance":{"type":"object","description":"C2PA-aligned manifest and W3C VC 2.0 (eddsa-jcs-2022) issued by the hub DID; verify at POST /api/v1/verify-provenance"}},"required":["data","_provenance"]}}}},"400":{"description":"Invalid request (no payment consumed)","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"401":{"description":"Invalid X-API-KEY","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}},"402":{"description":"Payment required or invalid","content":{"application/json":{"schema":{"type":"object","description":"x402 v2 PaymentRequired (also base64 in the PAYMENT-REQUIRED header)","properties":{"x402Version":{"type":"integer"},"error":{"type":"string"},"code":{"type":"string"},"resource":{"type":"object"},"accepts":{"type":"array","items":{"type":"object"}},"extensions":{"type":"object"}}}}}},"502":{"description":"Upstream failure; the payment is released or not settled","content":{"application/json":{"schema":{"type":"object","properties":{"error":{"type":"string"},"code":{"type":"string"}}}}}}}},"links":{"docs":"https://agents.writerslogic.com/docs/update-dialect/","docsJson":"https://agents.writerslogic.com/docs/update-dialect.json","sample":"https://agents.writerslogic.com/api/v1/samples/update-dialect","openapi":"https://agents.writerslogic.com/openapi.json","catalog":"https://agents.writerslogic.com/api/v1/catalog","verifyProvenance":"https://agents.writerslogic.com/api/v1/verify-provenance","index":"https://agents.writerslogic.com/docs/index.json"}}