# AUR0714

## Status: Removed

This error code has been removed from Aurelia 2. The `primary` property on bindable definitions no longer exists.

## Previous Error Message

`AUR0714: Template compilation error: primary already exists on element/attribute "<name>"`

## Migration

In previous versions of Aurelia 2, you could mark a bindable property as `primary: true` to indicate which property should receive values when using shorthand syntax. This could cause conflicts if multiple bindables were marked as primary.

This has been replaced with the `defaultProperty` option on the custom attribute definition, which is a single string property that cannot conflict.

**Old API (no longer supported):**

```typescript
import { bindable, customAttribute } from 'aurelia';

@customAttribute('my-attr')
export class MyAttribute {
  @bindable({ primary: true }) value: string;
  @bindable other: string;
}
```

**New API:**

```typescript
import { bindable, customAttribute } from 'aurelia';

@customAttribute({ name: 'my-attr', defaultProperty: 'value' })
export class MyAttribute {
  @bindable value: string;
  @bindable other: string;
}
```

The `defaultProperty` option specifies which property receives the value when the attribute is used with shorthand syntax. If not specified, it defaults to `'value'`.

See the [Custom Attributes documentation](https://github.com/aurelia/aurelia/blob/master/templates/custom-attributes.md#default-property) for more details.
