{
  "$defs": {
    "Confidentiality": {
      "description": "Cross-cutting confidentiality classification used across privacy,\nsecurity, knowledge, IR pillars. Default rendering rule: `corpospec-report`\nexcludes `Restricted | BoardOnly | InvestorOnly` records from public output\nunless an explicit audience parameter overrides. See BDR 0076 §1.",
      "oneOf": [
        {
          "const": "public",
          "description": "Safe to publish anywhere.",
          "type": "string"
        },
        {
          "const": "customer",
          "description": "Visible to customers under standard ToS.",
          "type": "string"
        },
        {
          "const": "internal",
          "description": "Employees and contractors only.",
          "type": "string"
        },
        {
          "const": "restricted",
          "description": "Need-to-know subset of internal.",
          "type": "string"
        },
        {
          "const": "board_only",
          "description": "Board members and direct staff.",
          "type": "string"
        },
        {
          "const": "investor_only",
          "description": "Existing investors + prospective with NDA.",
          "type": "string"
        }
      ]
    },
    "IsoCurrency": {
      "description": "ISO 4217 currency code.",
      "pattern": "^[A-Z]{3}$",
      "type": "string"
    },
    "IsoDate": {
      "description": "ISO 8601 date (YYYY-MM-DD).",
      "format": "date",
      "type": "string"
    },
    "KpiSnapshot": {
      "description": "Standard SaaS KPI snapshot.",
      "properties": {
        "arr": {
          "format": "double",
          "type": "number"
        },
        "cash_on_hand": {
          "description": "Cash on hand at period end.",
          "format": "double",
          "type": "number"
        },
        "currency": {
          "$ref": "#/$defs/IsoCurrency"
        },
        "grr_pct": {
          "description": "Gross revenue retention pct.",
          "format": "double",
          "type": [
            "number",
            "null"
          ]
        },
        "headcount_fte": {
          "description": "Headcount (FTE) at period end.",
          "format": "int32",
          "type": "integer"
        },
        "monthly_burn": {
          "description": "Monthly burn (negative net cash burn = positive cash).",
          "format": "double",
          "type": "number"
        },
        "mrr": {
          "format": "double",
          "type": "number"
        },
        "net_new_mrr": {
          "description": "Net new MRR this period.",
          "format": "double",
          "type": "number"
        },
        "nrr_pct": {
          "description": "Net revenue retention pct (≥100 = expansion-positive).",
          "format": "double",
          "type": [
            "number",
            "null"
          ]
        },
        "paying_customers": {
          "description": "Logo count (paying customers).",
          "format": "int32",
          "type": "integer"
        },
        "runway_months": {
          "description": "Runway in months (from latest cash position).",
          "format": "double",
          "type": "number"
        }
      },
      "required": [
        "currency",
        "mrr",
        "arr",
        "net_new_mrr",
        "paying_customers",
        "monthly_burn",
        "runway_months",
        "cash_on_hand",
        "headcount_fte"
      ],
      "type": "object"
    },
    "PathRef": {
      "description": "Path-based cross-reference relative to .corpospec/ root.\nPattern: `^[a-z0-9_-]+(/[a-z0-9_.-]+)+$`",
      "pattern": "^[a-z0-9_-]+(/[a-z0-9_.-]+)+$",
      "type": "string"
    },
    "UpdateAudience": {
      "description": "Audience scope.",
      "oneOf": [
        {
          "const": "internal",
          "description": "Internal-only (founders + leadership).",
          "type": "string"
        },
        {
          "const": "board",
          "description": "Board of directors.",
          "type": "string"
        },
        {
          "const": "all_investors",
          "description": "All investors (board + non-board).",
          "type": "string"
        },
        {
          "const": "lead_investor",
          "description": "Selected lead investor only.",
          "type": "string"
        },
        {
          "const": "public",
          "description": "Public / press.",
          "type": "string"
        }
      ]
    },
    "UpdateCadence": {
      "description": "Update cadence.",
      "enum": [
        "monthly",
        "quarterly",
        "annual",
        "ad_hoc"
      ],
      "type": "string"
    },
    "UpdateEvent": {
      "description": "Key event.",
      "properties": {
        "description": {
          "description": "Free-form description.",
          "type": "string"
        },
        "ref_path": {
          "anyOf": [
            {
              "$ref": "#/$defs/PathRef"
            },
            {
              "type": "null"
            }
          ],
          "description": "PathRef to related artefact (hire BDR, BDR, opportunity)."
        },
        "title": {
          "description": "Short title (e.g. \"Hired Director of Sales\").",
          "type": "string"
        }
      },
      "required": [
        "title",
        "description"
      ],
      "type": "object"
    }
  },
  "$id": "https://corpospec.com/schemas/v0.16.0/investor-update.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Investor-update record.",
  "properties": {
    "artefact_ref": {
      "anyOf": [
        {
          "$ref": "#/$defs/PathRef"
        },
        {
          "type": "null"
        }
      ],
      "description": "PathRef to the published artefact (PDF / Notion link)."
    },
    "asks": {
      "description": "Asks (what we need from the audience).",
      "items": {
        "type": "string"
      },
      "type": "array"
    },
    "audience": {
      "$ref": "#/$defs/UpdateAudience"
    },
    "author": {
      "$ref": "#/$defs/PathRef"
    },
    "bdr_refs": {
      "description": "PathRefs to BDRs ratified this period.",
      "items": {
        "$ref": "#/$defs/PathRef"
      },
      "type": "array"
    },
    "cadence": {
      "$ref": "#/$defs/UpdateCadence"
    },
    "confidentiality": {
      "$ref": "#/$defs/Confidentiality"
    },
    "entity": {
      "$ref": "#/$defs/PathRef"
    },
    "highlights": {
      "items": {
        "$ref": "#/$defs/UpdateEvent"
      },
      "type": "array"
    },
    "id": {
      "$ref": "#/$defs/PathRef"
    },
    "key_departures": {
      "items": {
        "$ref": "#/$defs/PathRef"
      },
      "type": "array"
    },
    "key_hires": {
      "description": "Key hires + departures this period.",
      "items": {
        "$ref": "#/$defs/PathRef"
      },
      "type": "array"
    },
    "kpis": {
      "$ref": "#/$defs/KpiSnapshot"
    },
    "lowlights": {
      "items": {
        "$ref": "#/$defs/UpdateEvent"
      },
      "type": "array"
    },
    "okr_refs": {
      "description": "PathRefs to OKRs progressed this period.",
      "items": {
        "$ref": "#/$defs/PathRef"
      },
      "type": "array"
    },
    "period_end": {
      "$ref": "#/$defs/IsoDate"
    },
    "period_start": {
      "$ref": "#/$defs/IsoDate"
    },
    "sent_at": {
      "$ref": "#/$defs/IsoDate"
    },
    "summary": {
      "description": "One-paragraph executive summary.",
      "type": "string"
    }
  },
  "required": [
    "id",
    "entity",
    "cadence",
    "audience",
    "period_start",
    "period_end",
    "summary",
    "highlights",
    "lowlights",
    "asks",
    "kpis",
    "key_hires",
    "key_departures",
    "sent_at",
    "author",
    "confidentiality"
  ],
  "title": "InvestorUpdate",
  "type": "object",
  "x-corpospec-pillar": "governance"
}