| 1 | { |
| 2 | "$schema" "https://json-schema.org/draft/2020-12/schema", |
| 3 | "$id" "https://cascade.dev/intercom-wire/v1/payloads/message-range-related.schema.json", |
| 4 | "title" "IntercomMessageRangeRelatedPayload", |
| 5 | "description" "Explicit gutter ordinal range(s) ↔ code (ADR 0137 contiguous, 0138 disjoint).", |
| 6 | "type" "object", |
| 7 | "required" ["thread_id", "start_ordinal", "end_ordinal", "code_ref", "source"], |
| 8 | "properties" { |
| 9 | "thread_id" { "type": "string" }, |
| 10 | "start_ordinal" { "type": "integer", "minimum": 1 }, |
| 11 | "end_ordinal" { "type": "integer", "minimum": 1 }, |
| 12 | "code_ref" { "$ref": "../common/attachment-anchor.schema.json" }, |
| 13 | "source" { |
| 14 | "type" "string", |
| 15 | "description" "explicit | inferred | slash | mcp" |
| 16 | }, |
| 17 | "ordinal_segments" { |
| 18 | "type" "array", |
| 19 | "description" "Disjoint multi-range (ADR 0138). When absent, [start_ordinal, end_ordinal] is the sole segment.", |
| 20 | "minItems" 1, |
| 21 | "items" { |
| 22 | "type" "object", |
| 23 | "required" ["start_ordinal", "end_ordinal"], |
| 24 | "properties" { |
| 25 | "start_ordinal" { "type": "integer", "minimum": 1 }, |
| 26 | "end_ordinal" { "type": "integer", "minimum": 1 } |
| 27 | }, |
| 28 | "additionalProperties" false |
| 29 | } |
| 30 | }, |
| 31 | "code_doc_links" { |
| 32 | "type" "array", |
| 33 | "items" { "$ref": "../extensions/code-doc-link-v1.schema.json" } |
| 34 | } |
| 35 | }, |
| 36 | "additionalProperties" true |
| 37 | } |
| 38 | |