> ## Documentation Index
> Fetch the complete documentation index at: https://village-docs.villagelabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# PlanRules Schema

> The legal framework configuration

## Overview

`PlanRules` define the stable, legal framework of the ESOP as specified in the plan document. These rules change infrequently and require plan amendments.

<Note>
  See [Design Principles](/architecture/design-principles) for the distinction between PlanRules and OperatingAssumptions.
</Note>

## Schema

```json theme={null}
{
  "plan_name": "string",
  "plan_year_end": "MM/DD",
  "vesting_schedule": {
    "type": "graded" | "cliff",
    "schedule": [0, 0, 20, 40, 60, 80, 100]
  },
  "distribution_policy": {
    "timing": "immediate" | "termination_plus_1_year",
    "form": "lump_sum" | "installments"
  },
  "cash_usage_policy": ["source1", "source2", "source3"],
  "diversification_rules": { }
}
```

## Example

```python theme={null}
plan_rules = PlanRules(
    plan_name="Acme Corp ESOP",
    plan_year_end="12/31",
    vesting_schedule=VestingSchedule(type="graded"),
    distribution_policy=DistributionPolicy(timing="termination_plus_1_year"),
    cash_usage_policy=["unallocated_company_contributions", "unallocated_forfeiture_cash"]
)
```
