AISA v2.0 / Technical documentation / normalised-arrival.schema.json
normalised-arrival.schema.json
JSON · 23 lines · 3,382 bytes · wiki path 10 Architecture/contracts/drafts/normalised-arrival.schema.json · download the raw file · cited from Contracts
Same folder: branch-set.schema.json · brief.schema.json · configuration-summary.schema.json · cross-repo-shape.schema.json · experience-entry.schema.json · handover-packet.schema.json · route-packet.schema.json · sign-out-document.schema.json · skill-manifest.schema.json · solution-packet.schema.json · stage-contract.schema.json
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://aisa.ablera.com/contracts/drafts/normalised-arrival.schema.json",
"title": "Normalised arrival — DRAFT inter-stage contract (Support S1 / platform.intake)",
"x-status": "draft",
"description": "Stage Classification § 1 and Agents § 5c: every channel lands in one shape — reporter, subject, body, referenced identifiers, attachments, arrival time — stamped with an origin key (channel + external id) that dedup checks first. Identifiers are HANDLES here: substitution happened at the connector (Trust and Data § 4). Channel mechanics stay in the connector. Required core only (D139).",
"type": "object", "additionalProperties": true,
"required": ["channel", "origin_key", "received_on", "reporter", "subject", "body_paper_ref", "identifiers", "attachments", "customer_code"],
"properties": {
"channel": { "type": "string", "enum": ["jira", "mail", "hdesk", "in_place", "schedule", "handover", "admin_ui"] },
"origin_key": { "type": "string", "description": "channel:external id — SD-1717 · a Message-ID · an OTRS TicketID · a client-app request id" },
"received_on": { "type": "string", "format": "date-time" },
"customer_code": { "type": "string" },
"reporter": { "type": "object", "required": ["handle"], "properties": { "handle": { "type": "string" }, "organisation": { "type": "string" }, "role_hint": { "type": "string" } } },
"subject": { "type": "string" },
"body_paper_ref": { "type": "string", "description": "the re-briefed body as a paper; the raw source stays in the channel" },
"identifiers": { "type": "array", "items": { "type": "object", "required": ["handle", "kind"], "properties": { "handle": { "type": "string" }, "kind": { "type": "string", "enum": ["EGN", "EIK", "VIN", "POLICY_NO", "CLAIM_NO", "IBAN", "NAME", "EMAIL", "PHONE", "PRODUCT_CODE", "OFFICE", "USER", "OTHER"] }, "resolved_to": { "type": "object", "properties": { "environment": { "type": "string" }, "system": { "type": "string" }, "object": { "type": "string" } } }, "structural_facets": { "type": "object" } } } },
"attachments": { "type": "array", "items": { "type": "object", "required": ["name", "hash", "scanned"], "properties": { "name": { "type": "string" }, "hash": { "type": "string" }, "media_type": { "type": "string" }, "scanned": { "type": "boolean", "description": "attachment scanning before any connector opens it (Delivery § 4)" }, "paper_ref": { "type": "string" } } } },
"mirrors": { "type": "array", "items": { "type": "object", "required": ["channel", "origin_key"], "properties": { "channel": { "type": "string" }, "origin_key": { "type": "string" } } }, "description": "the same request on another channel (a HelpDesk ticket and its Jira mirror are one case)" },
"proposed": { "type": "object", "properties": { "module": { "type": "string", "enum": ["configuration", "support", "source"] }, "case_type": { "type": "string" }, "request_type": { "type": "string" }, "confidence": { "type": "string", "enum": ["high", "low"] }, "duplicate_of_case_id": { "type": "string" }, "precedents": { "type": "array", "items": { "type": "string" } } } },
"initiation": { "type": "object", "properties": { "outcome": { "type": "string", "enum": ["granted", "may_request", "not_granted"] }, "rule_ref": { "type": "string" } } }
}
}