# Trim Properties

Trim Properties are created using json data files. See [File Structure](../data_files) for where these files should be located.

Each property consists of three main parts:
1. **Matcher**: Determines which armour trims the property applies to and how many must be present.
2. **Abilities**: The effects the property gives when the trim is worn.
3. **Item Properties**: The effects the property has on the item itself.

See [Components](components) for more information on what types of abilities and item properties are available.

## Structure
The basic structure of a property file is as follows:
```json5
{
  "trim": {
  },
  "abilities": {
  },
  "item_properties": {
  }
}
```
### Fields
| Field             | Type   | Required | Description                                                                      |
|-------------------|--------|----------|----------------------------------------------------------------------------------|
| `trim`            | object | Yes      | The matcher section that determines which trims                                  |
| `abilities`       | object | No       | The abilities section that defines the abilities the property grants             |
| `item_properties` | object | No       | The item properties section that defines the item properties the property grants |

### Examples
See the [Included Properties](https://github.com/Bawnorton/BetterTrims/tree/rewrite/versions/1.21.8-fabric/src/main/generated/resourcepacks/default/data/bettertrims/bettertrims/trim_properties) for examples of complete property files.
