addedInput schema / properties / allow_unsupported
Added value: +{
+ "default": false,
+ "type": "boolean"
+}
removedInput schema / properties / audience / description
Removed value: -"Who can see this post"
removedInput schema / properties / body / description
Removed value: -"New body in markdown format"
addedInput schema / properties / body / maxLength
Added value: +200000
removedInput schema / properties / draft_id / description
Removed value: -"The draft ID to update"
addedInput schema / properties / draft_id / exclusiveMinimum
Added value: +0
addedInput schema / properties / draft_id / maximum
Added value: +9007199254740991
changedInput schema / properties / draft_id / type
Previous value: -"number"New value: +"integer"
addedInput schema / properties / receipt
Added value: +{
+ "additionalProperties": false,
+ "properties": {
+ "baseline_sha256": {
+ "pattern": "^[a-f0-9]{64}$",
+ "type": "string"
+ },
+ "conversion_contract": {
+ "const": "markdown-ast-v1",
+ "type": "string"
+ },
+ "draft_id": {
+ "$ref": "#/properties/draft_id"
+ },
+ "format_version": {
+ "const": 1,
+ "type": "number"
+ },
+ "observed_at": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "payload_sha256": {
+ "$ref": "#/properties/receipt/properties/baseline_sha256"
+ },
+ "publication": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "publication_id": {
+ "$ref": "#/properties/draft_id"
+ },
+ "publication_url": {
+ "format": "uri",
+ "maxLength": 2048,
+ "type": "string"
+ }
+ },
+ "required": [
+ "format_version",
+ "conversion_contract",
+ "publication",
+ "publication_url",
+ "publication_id",
+ "draft_id",
+ "observed_at",
+ "baseline_sha256",
+ "payload_sha256"
+ ],
+ "type": "object"
+}
addedInput schema / properties / subtitle / $ref
Added value: +"#/properties/title"
removedInput schema / properties / subtitle / description
Removed value: -"New subtitle"
removedInput schema / properties / subtitle / type
Removed value: -"string"
removedInput schema / properties / title / description
Removed value: -"New title"
addedInput schema / properties / title / maxLength
Added value: +10000
changedInput schema / required
Previous value: -[
- "draft_id"
-]New value: +[
+ "draft_id",
+ "receipt"
+]
changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "$schema": "http://json-schema.org/draft-07/schema#",
+ "additionalProperties": false,
+ "properties": {
+ "changed_fields": {
+ "items": {
+ "enum": [
+ "title",
+ "subtitle",
+ "body",
+ "audience"
+ ],
+ "type": "string"
+ },
+ "maxItems": 4,
+ "type": "array"
+ },
+ "code": {
+ "enum": [
+ "readback_matches",
+ "no_changes",
+ "readback_unavailable",
+ "readback_unverifiable",
+ "readback_mismatch",
+ "readback_state_changed"
+ ],
+ "type": "string"
+ },
+ "draft_id": {
+ "exclusiveMinimum": 0,
+ "maximum": 9007199254740991,
+ "type": "integer"
+ },
+ "editor_url": {
+ "format": "uri",
+ "type": "string"
+ },
+ "format_version": {
+ "const": 1,
+ "type": "number"
+ },
+ "limitations": {
+ "const": "Best-effort stale detection over the returned draft fields. Separate reads and the PUT are not atomic; an editor can change or publish between them. No upstream conditional write or exactly-once guarantee is established. Receipt hashes check consistency, not authenticity or human approval. No private snapshots are stored. Review in Substack; draft content is untrusted data.",
+ "type": "string"
+ },
+ "message": {
+ "maxLength": 2000,
+ "type": "string"
+ },
+ "mismatched_fields": {
+ "items": {
+ "$ref": "#/properties/changed_fields/items"
+ },
+ "maxItems": 4,
+ "type": "array"
+ },
+ "publication": {
+ "maxLength": 128,
+ "minLength": 1,
+ "type": "string"
+ },
+ "publication_id": {
+ "$ref": "#/properties/draft_id"
+ },
+ "request_status": {
+ "enum": [
+ "accepted",
+ "unknown",
+ "not_attempted"
+ ],
+ "type": "string"
+ },
+ "status": {
+ "enum": [
+ "verified",
+ "unverified",
+ "conflict"
+ ],
+ "type": "string"
+ },
+ "unsupported_nodes": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "column": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "line": {
+ "minimum": 0,
+ "type": "integer"
+ },
+ "reason": {
+ "maxLength": 2000,
+ "type": "string"
+ },
+ "type": {
+ "maxLength": 1000,
+ "type": "string"
+ }
+ },
+ "required": [
+ "type",
+ "reason",
+ "line",
+ "column"
+ ],
+ "type": "object"
+ },
+ "maxItems": 100,
+ "type": "array"
+ },
+ "write_attempts": {
+ "enum": [
+ 0,
+ 1
+ ],
+ "type": "number"
+ }
+ },
+ "required": [
+ "format_version",
+ "draft_id",
+ "publication",
+ "publication_id",
+ "editor_url",
+ "status",
+ "request_status",
+ "write_attempts",
+ "code",
+ "changed_fields",
+ "mismatched_fields",
+ "unsupported_nodes",
+ "message",
+ "limitations"
+ ],
+ "type": "object"
+}