---
title: SchemaProperty
framework: swiftdata
role: symbol
role_heading: Protocol
path: swiftdata/schemaproperty
---

# SchemaProperty

An interface for describing a property.

## Declaration

```swift
protocol SchemaProperty : Decodable, Encodable, Hashable
```

## Topics

### Instance Properties

- [isAttribute](swiftdata/schemaproperty/isattribute.md)
- [isOptional](swiftdata/schemaproperty/isoptional.md)
- [isRelationship](swiftdata/schemaproperty/isrelationship.md)
- [isTransient](swiftdata/schemaproperty/istransient.md)
- [isUnique](swiftdata/schemaproperty/isunique.md)
- [name](swiftdata/schemaproperty/name.md)
- [originalName](swiftdata/schemaproperty/originalname.md)
- [valueType](swiftdata/schemaproperty/valuetype.md)

## Relationships

### Inherits From

- [Decodable](swift/decodable.md)
- [Encodable](swift/encodable.md)
- [Equatable](swift/equatable.md)
- [Hashable](swift/hashable.md)

### Conforming Types

- [Schema.Attribute](swiftdata/schema/attribute.md)
- [Schema.CompositeAttribute](swiftdata/schema/compositeattribute.md)
- [Schema.Index](swiftdata/schema/index.md)
- [Schema.Relationship](swiftdata/schema/relationship.md)
- [Schema.Unique](swiftdata/schema/unique.md)

## See Also

### Properties

- [RelationshipCollection](swiftdata/relationshipcollection.md)
