# PatternChange

A change to a codebase's pattern. Everything is optional; what is given is added (or, for the architecture, replaced). `remove` drops items from any list by their text.

**Kind:** an object, used in requests.

## Fields

| Field | Type | Required | Description |
|---|---|---|---|
| `architecture` | `string \| null` |  | Replaces how the codebase is built, in a few sentences; an empty string clears it. Null leaves it as it is. |
| `addHeuristics` | `string[]` |  | Heuristics to add: how to find your way around the codebase. |
| `addKeyFiles` | `string[]` |  | Key files to add: entry points and the files that explain the rest. |
| `addConventions` | `string[]` |  | Conventions to add: style, patterns, rules. |
| `remove` | `string[]` |  | Items to drop, matched case-insensitively against the start of an item's text. |

## Example

```json
{
  "architecture": "...",
  "addHeuristics": [
    "..."
  ],
  "addKeyFiles": [
    "..."
  ],
  "addConventions": [
    "..."
  ],
  "remove": [
    "..."
  ]
}
```

## Where it's used

- [`looms.shapePattern`](https://docs.maitento.com/reference/api/looms.md) (`PUT /looms/by-id/{id}/patterns/by-name/{codebase}`)
