5
core entities
Apache-2.0
permissive
2020-12
JSON Schema
Industry vocabulary
Sabre + IBS + PROS + AMOS interop

Why publish schemas Day 1

Per PRD §4.6: "Vocabulary integration across the industry is what eventually lets a regulator filing reference our ontology, a lender book deep-link to our Decision Artifact, an academic paper cite our PAL+ formulas. Apache 2.0 publication costs near-zero and compounds for years." The schemas are the public contract — Roberto's engine, any future Skill, any agent in the Mythos roadmap all conform to these shapes.

Core entity schemas

JSON Schema 2020-12 Decision   A SkyWeave Decision — the atomic unit of output emitted by any coordinator (S1-S6). 25 props
{
  "$defs": {
    "DecisionSide": {
      "description": "PAL+ line decomposition sides (PRD \u00a74.1).",
      "enum": [
        "revenue",
        "cost",
        "ancillary",
        "passenger_protection"
      ],
      "title": "DecisionSide",
      "type": "string"
    },
    "PALDecomposition": {
      "description": "Full PAL+ decomposition of a Decision.",
      "properties": {
        "decision_id": {
          "title": "Decision Id",
          "type": "string"
        },
        "lines": {
          "items": {
            "$ref": "#/$defs/PALLine"
          },
          "title": "Lines",
          "type": "array"
        },
        "total_attributed_usd": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
              "type": "string"
            }
          ],
          "title": "Total Attributed Usd"
        },
        "coverage_pct": {
          "maximum": 1.0,
          "minimum": 0.0,
          "title": "Coverage Pct",
          "type": "number"
        },
        "constitution_version": {
          "title": "Constitution Version",
          "type": "string"
        },
        "dedup_check_passed": {
          "title": "Dedup Check Passed",
          "type": "boolean"
        }
      },
      "required": [
        "decision_id",
        "lines",
        "total_attributed_usd",
        "coverage_pct",
        "constitution_version",
        "dedup_check_passed"
      ],
      "title": "PALDecomposition",
      "type": "object"
    },
    "PALLine": {
      "description": "One line in a PAL+ decomposition. USD-decimal, formula-hashed.",
      "properties": {
        "line_id": {
          "maxLength": 128,
          "minLength": 1,
          "title": "Line Id",
          "type": "string"
        },
        "side": {
          "$ref": "#/$defs/DecisionSide"
        },
        "amount_usd": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,14}|(?=[\\d.]{1,19}0*$)\\d{0,14}\\.\\d{0,4}0*$)",
              "type": "string"
            }
         [... truncated, see full file] 
file: schemas/decision.json license: Apache-2.0 version: v0.1
JSON Schema 2020-12 PALDecomposition   F1 PAL+ profit attribution — line-by-line USD decomposition of a Decision. 6 props
{
  "$defs": {
    "DecisionSide": {
      "description": "PAL+ line decomposition sides (PRD \u00a74.1).",
      "enum": [
        "revenue",
        "cost",
        "ancillary",
        "passenger_protection"
      ],
      "title": "DecisionSide",
      "type": "string"
    },
    "PALLine": {
      "description": "One line in a PAL+ decomposition. USD-decimal, formula-hashed.",
      "properties": {
        "line_id": {
          "maxLength": 128,
          "minLength": 1,
          "title": "Line Id",
          "type": "string"
        },
        "side": {
          "$ref": "#/$defs/DecisionSide"
        },
        "amount_usd": {
          "anyOf": [
            {
              "type": "number"
            },
            {
              "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,14}|(?=[\\d.]{1,19}0*$)\\d{0,14}\\.\\d{0,4}0*$)",
              "type": "string"
            }
          ],
          "title": "Amount Usd"
        },
        "formula_hash": {
          "pattern": "^[0-9a-f]{16,64}$",
          "title": "Formula Hash",
          "type": "string"
        },
        "evidence_ref": {
          "title": "Evidence Ref",
          "type": "string"
        },
        "underlying_record_key": {
          "title": "Underlying Record Key",
          "type": "string"
        },
        "horizon_start": {
          "format": "date-time",
          "title": "Horizon Start",
          "type": "string"
        },
        "horizon_end": {
          "format": "date-time",
          "title": "Horizon End",
          "type": "string"
        }
      },
      "required": [
        "line_id",
        "side",
        "amount_usd",
        "formula_hash",
        "evidence_ref",
        "underlying_record_key",
        "horizon_start",
        "horizon_end"
      ],
      "title": "PALLine",
      "type": "object"
    }
  },
  "description": "F1 PAL+ profit attribution \u2014 line-by-line USD decomposition of a Decision.",
  "properties": {
    "decision_id": {
      "title": "Decision Id",
      "type": "string"
    },
    "lines": {
      "items": {
        "$ref": "#/$defs/PALLine"
      },
      "title": "Lines",
      "type": "array"
    },
    "total_attributed_usd [... truncated, see full file] 
file: schemas/paldecomposition.json license: Apache-2.0 version: v0.1
JSON Schema 2020-12 PALLine   One line of a PAL+ decomposition. Formula-hashed, evidence-referenced. 8 props
{
  "$defs": {
    "DecisionSide": {
      "description": "PAL+ line decomposition sides (PRD \u00a74.1).",
      "enum": [
        "revenue",
        "cost",
        "ancillary",
        "passenger_protection"
      ],
      "title": "DecisionSide",
      "type": "string"
    }
  },
  "description": "One line of a PAL+ decomposition. Formula-hashed, evidence-referenced.",
  "properties": {
    "line_id": {
      "maxLength": 128,
      "minLength": 1,
      "title": "Line Id",
      "type": "string"
    },
    "side": {
      "$ref": "#/$defs/DecisionSide"
    },
    "amount_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*(?:\\d{0,14}|(?=[\\d.]{1,19}0*$)\\d{0,14}\\.\\d{0,4}0*$)",
          "type": "string"
        }
      ],
      "title": "Amount Usd"
    },
    "formula_hash": {
      "pattern": "^[0-9a-f]{16,64}$",
      "title": "Formula Hash",
      "type": "string"
    },
    "evidence_ref": {
      "title": "Evidence Ref",
      "type": "string"
    },
    "underlying_record_key": {
      "title": "Underlying Record Key",
      "type": "string"
    },
    "horizon_start": {
      "format": "date-time",
      "title": "Horizon Start",
      "type": "string"
    },
    "horizon_end": {
      "format": "date-time",
      "title": "Horizon End",
      "type": "string"
    }
  },
  "required": [
    "line_id",
    "side",
    "amount_usd",
    "formula_hash",
    "evidence_ref",
    "underlying_record_key",
    "horizon_start",
    "horizon_end"
  ],
  "title": "PALLine",
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/skyweave/ontology/palline.json",
  "x-skyweave-version": "v0.1",
  "x-skyweave-license": "Apache-2.0"
}
file: schemas/palline.json license: Apache-2.0 version: v0.1
JSON Schema 2020-12 SenseRecord   F4 Sense ledger record — one row of ingested airline data with content-hash provenance. 22 props
{
  "description": "F4 Sense ledger record \u2014 one row of ingested airline data with content-hash provenance.",
  "properties": {
    "record_id": {
      "title": "Record Id",
      "type": "string"
    },
    "source": {
      "title": "Source",
      "type": "string"
    },
    "content_hash": {
      "pattern": "^[0-9a-f]{16,64}$",
      "title": "Content Hash",
      "type": "string"
    },
    "ingested_at": {
      "format": "date-time",
      "title": "Ingested At",
      "type": "string"
    },
    "flight_date": {
      "format": "date",
      "title": "Flight Date",
      "type": "string"
    },
    "flight_number": {
      "title": "Flight Number",
      "type": "string"
    },
    "origin_airport": {
      "title": "Origin Airport",
      "type": "string"
    },
    "destination_airport": {
      "title": "Destination Airport",
      "type": "string"
    },
    "tail_number": {
      "title": "Tail Number",
      "type": "string"
    },
    "fleet_subtype": {
      "title": "Fleet Subtype",
      "type": "string"
    },
    "customer_segment": {
      "title": "Customer Segment",
      "type": "string"
    },
    "seats_available": {
      "title": "Seats Available",
      "type": "integer"
    },
    "seats_sold": {
      "title": "Seats Sold",
      "type": "integer"
    },
    "ticket_revenue_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        }
      ],
      "title": "Ticket Revenue Usd"
    },
    "ancillary_revenue_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        }
      ],
      "title": "Ancillary Revenue Usd"
    },
    "cargo_revenue_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$",
          "type": "string"
        }
      ],
      "title": "Cargo Revenue Usd"
    },
    "fuel_cost_usd": {
      "anyOf": [
        {
          "type": "number"
        },
        {
          "pattern": "^(?!^[-+.]*$) [... truncated, see full file] 
file: schemas/senserecord.json license: Apache-2.0 version: v0.1
JSON Schema 2020-12 AuditEntry   F2 Audit ledger entry — Merkle-chained, per-tenant scoped. 8 props
{
  "description": "F2 Audit ledger entry \u2014 Merkle-chained, per-tenant scoped.",
  "properties": {
    "entry_id": {
      "title": "Entry Id",
      "type": "string"
    },
    "tenant_id": {
      "title": "Tenant Id",
      "type": "string"
    },
    "decision_id": {
      "title": "Decision Id",
      "type": "string"
    },
    "payload_hash": {
      "title": "Payload Hash",
      "type": "string"
    },
    "previous_hash": {
      "title": "Previous Hash",
      "type": "string"
    },
    "entry_hash": {
      "title": "Entry Hash",
      "type": "string"
    },
    "timestamp": {
      "format": "date-time",
      "title": "Timestamp",
      "type": "string"
    },
    "kind": {
      "default": "decision",
      "enum": [
        "decision",
        "override",
        "kill_switch",
        "scenario_commit"
      ],
      "title": "Kind",
      "type": "string"
    }
  },
  "required": [
    "entry_id",
    "tenant_id",
    "decision_id",
    "payload_hash",
    "previous_hash",
    "entry_hash",
    "timestamp"
  ],
  "title": "AuditEntry",
  "type": "object",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://github.com/skyweave/ontology/auditentry.json",
  "x-skyweave-version": "v0.1",
  "x-skyweave-license": "Apache-2.0"
}
file: schemas/auditentry.json license: Apache-2.0 version: v0.1