# Shared Verbs

URL: /code/file-conventions/verbs · Id: `page:code/file-conventions/verbs`

> A file in verbs/ declares one Verb that several Nouns share, with its inverse and input, once.

A file in `verbs/` declares one [Verb](/business/nouns/verb) that several [Nouns](/business/nouns/noun) share. It states the Verb once, so `Lease.renew` and `Contract.renew` mean the same thing.

```text
verbs/
└── renew.mdx      renew, shared by Lease and Contract
```

## Reference
MDX. Frontmatter is the Verb; the body is its documentation.

| Key | Type | Holds |
| --- | --- | --- |
| `nouns` | Noun names | The Nouns that take the Verb |
| `inverse` | verb | The Verb that undoes it |
| `input` | map | The input every Noun's form shares |
| `forms` | map | Irregular forms only, such as `doneBy` |

## Examples
### Minimal
```mdx title="verbs/renew.mdx"
---
nouns: [Lease]
---
```

### Leaseline
Leaseline declares a `Lease` Noun and a `Contract` Noun for its own vendor agreements.

```mdx title="verbs/renew.mdx"
---
nouns: [Lease, Contract]
inverse: lapse
input:
  months: number
---
Renewing extends an agreement by a term; lapsing ends it on its end date.
```

## What it builds
The [SoftwareBuilder](/code/builders/software) compiles one Verb onto each listed Noun.

- `Lease.renew`, `Contract.renew` and the inverse `lapse` on each
- the [Events](/business/nouns/event) `Lease.renewed` and `Contract.renewed`
- one input type, shared by every Noun that takes the Verb

## Good to know
- A Verb declared in a Noun file and in `verbs/` fails the parse check.
- Each Noun keeps its own [Verb function](/code/file-conventions/verb-functions).
- [Shared Verbs](/business/verbs) lists every Verb the platform already shares.