{
  "$defs": {
    "ChangeOfControlTreatment": {
      "description": "Change-of-control treatment.",
      "oneOf": [
        {
          "const": "single_trigger_full",
          "description": "100% accelerate on change of control alone (rare for new plans).",
          "type": "string"
        },
        {
          "const": "double_trigger",
          "description": "Accelerate only on change of control AND termination without cause.",
          "type": "string"
        },
        {
          "const": "pro_rata_acceleration",
          "description": "Pro-rata acceleration based on time served.",
          "type": "string"
        },
        {
          "const": "no_acceleration",
          "description": "No acceleration; vesting continues as scheduled.",
          "type": "string"
        }
      ]
    },
    "DefaultVesting": {
      "description": "Vesting schedule default for the plan.",
      "properties": {
        "cliff_months": {
          "format": "int32",
          "type": "integer"
        },
        "frequency_months": {
          "format": "int32",
          "type": "integer"
        },
        "monthly_after_cliff": {
          "description": "Whether grants vest 1/n monthly after cliff (true) or all-at-once\nat cliff (false).",
          "type": "boolean"
        },
        "total_months": {
          "format": "int32",
          "type": "integer"
        }
      },
      "required": [
        "total_months",
        "cliff_months",
        "frequency_months",
        "monthly_after_cliff"
      ],
      "type": "object"
    },
    "FlipConversion": {
      "description": "Conversion behaviour when the parent entity flips legal form\n(e.g. BDR 0042 GmbH → Delaware C-Corp).",
      "properties": {
        "converts": {
          "description": "Whether grants convert at flip.",
          "type": "boolean"
        },
        "note": {
          "description": "Free-form note on the mechanics.",
          "type": [
            "string",
            "null"
          ]
        },
        "target_plan_type": {
          "anyOf": [
            {
              "$ref": "#/$defs/OptionPlanType"
            },
            {
              "type": "null"
            }
          ],
          "description": "Target plan type after flip."
        }
      },
      "required": [
        "converts"
      ],
      "type": "object"
    },
    "IsoCountry": {
      "description": "ISO 3166-1 alpha-2 country code.",
      "pattern": "^[A-Z]{2}$",
      "type": "string"
    },
    "IsoDate": {
      "description": "ISO 8601 date (YYYY-MM-DD).",
      "format": "date",
      "type": "string"
    },
    "OptionPlanStatus": {
      "description": "Plan status.",
      "enum": [
        "draft",
        "active",
        "frozen",
        "terminated"
      ],
      "type": "string"
    },
    "OptionPlanType": {
      "description": "Plan type.",
      "oneOf": [
        {
          "const": "iso",
          "description": "US Incentive Stock Option (IRC §422).",
          "type": "string"
        },
        {
          "const": "nso",
          "description": "US Non-Qualified Stock Option.",
          "type": "string"
        },
        {
          "const": "rsu",
          "description": "Restricted Stock Unit.",
          "type": "string"
        },
        {
          "const": "rsa",
          "description": "Restricted Stock Award.",
          "type": "string"
        },
        {
          "const": "esop",
          "description": "US Employee Stock Option Plan.",
          "type": "string"
        },
        {
          "const": "vsop",
          "description": "German Virtual Stock Option Plan (phantom equity).",
          "type": "string"
        },
        {
          "const": "phantom",
          "description": "Phantom equity (cash-settled, no actual shares).",
          "type": "string"
        },
        {
          "const": "profit_interest",
          "description": "US LLC profit interest (carry-like equity).",
          "type": "string"
        }
      ]
    },
    "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"
    },
    "PoolReferenceBasis": {
      "description": "Basis the pool size is measured against.",
      "enum": [
        "current_outstanding",
        "post_money_fully_diluted",
        "pre_money_fully_diluted"
      ],
      "type": "string"
    },
    "StrikePriceBasis": {
      "description": "Strike-price basis at grant.",
      "oneOf": [
        {
          "const": "409a",
          "description": "US §409A valuation.",
          "type": "string"
        },
        {
          "const": "fmv",
          "description": "Fair market value at grant.",
          "type": "string"
        },
        {
          "const": "nominal",
          "description": "Nominal price (e.g. €1 per share).",
          "type": "string"
        },
        {
          "const": "par",
          "description": "Par value.",
          "type": "string"
        },
        {
          "const": "growth_share_threshold",
          "description": "Growth-share threshold (UK variant).",
          "type": "string"
        }
      ]
    },
    "TaxTreatmentEntry": {
      "description": "Per-event tax-treatment table entry.",
      "properties": {
        "citation": {
          "description": "Statute citation (e.g. `\"§ 19a Abs. 4 EStG\"`, `\"IRC §422\"`).",
          "type": "string"
        },
        "treatment": {
          "description": "Human-readable treatment statement.",
          "type": "string"
        }
      },
      "required": [
        "treatment",
        "citation"
      ],
      "type": "object"
    },
    "TaxTreatmentTable": {
      "description": "Per-event tax-treatment table.",
      "properties": {
        "exercise": {
          "$ref": "#/$defs/TaxTreatmentEntry"
        },
        "grant": {
          "$ref": "#/$defs/TaxTreatmentEntry"
        },
        "payout": {
          "$ref": "#/$defs/TaxTreatmentEntry"
        },
        "vesting": {
          "$ref": "#/$defs/TaxTreatmentEntry"
        }
      },
      "required": [
        "grant",
        "vesting",
        "exercise",
        "payout"
      ],
      "type": "object"
    }
  },
  "$id": "https://corpospec.com/schemas/v0.16.0/option-plan.schema.json",
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "additionalProperties": false,
  "description": "Employee equity plan record.",
  "properties": {
    "change_of_control_treatment": {
      "$ref": "#/$defs/ChangeOfControlTreatment"
    },
    "clawback_provisions": {
      "type": [
        "string",
        "null"
      ]
    },
    "conversion_at_flip": {
      "anyOf": [
        {
          "$ref": "#/$defs/FlipConversion"
        },
        {
          "type": "null"
        }
      ],
      "description": "Behaviour at corporate-form conversion (BDR 0042 C-Corp flip)."
    },
    "early_exercise_allowed": {
      "description": "Whether early exercise is allowed.",
      "type": "boolean"
    },
    "effective_from": {
      "$ref": "#/$defs/IsoDate"
    },
    "entity": {
      "$ref": "#/$defs/PathRef"
    },
    "exercise_window_post_termination_months": {
      "description": "Default exercise window after termination (months).",
      "format": "int32",
      "type": "integer"
    },
    "governing_jurisdiction": {
      "$ref": "#/$defs/IsoCountry"
    },
    "governing_resolution": {
      "anyOf": [
        {
          "$ref": "#/$defs/PathRef"
        },
        {
          "type": "null"
        }
      ],
      "description": "PathRef into the governing Gesellschafterbeschluss."
    },
    "id": {
      "$ref": "#/$defs/PathRef"
    },
    "name": {
      "type": "string"
    },
    "plan_type": {
      "$ref": "#/$defs/OptionPlanType"
    },
    "pool_reference_basis": {
      "$ref": "#/$defs/PoolReferenceBasis"
    },
    "pool_size_pct": {
      "description": "Pool as percentage of fully-diluted shares.",
      "format": "double",
      "type": [
        "number",
        "null"
      ]
    },
    "pool_size_shares": {
      "description": "Pool size in absolute shares.",
      "format": "int64",
      "type": [
        "integer",
        "null"
      ]
    },
    "status": {
      "$ref": "#/$defs/OptionPlanStatus"
    },
    "strike_price_basis": {
      "$ref": "#/$defs/StrikePriceBasis"
    },
    "superseded_by": {
      "anyOf": [
        {
          "$ref": "#/$defs/PathRef"
        },
        {
          "type": "null"
        }
      ]
    },
    "tax_treatment": {
      "$ref": "#/$defs/TaxTreatmentTable"
    },
    "transfer_restrictions": {
      "type": [
        "string",
        "null"
      ]
    },
    "vesting_default": {
      "$ref": "#/$defs/DefaultVesting"
    }
  },
  "required": [
    "id",
    "entity",
    "name",
    "plan_type",
    "pool_reference_basis",
    "governing_jurisdiction",
    "tax_treatment",
    "vesting_default",
    "strike_price_basis",
    "exercise_window_post_termination_months",
    "early_exercise_allowed",
    "change_of_control_treatment",
    "effective_from",
    "status"
  ],
  "title": "OptionPlan",
  "type": "object",
  "x-corpospec-pillar": "entity"
}