---
title: USDLayer.Spec
framework: usdkit
role: symbol
role_heading: Structure
path: usdkit/usdlayer/spec
---

# USDLayer.Spec

A handle to a single spec stored in a layer.

## Declaration

```swift
struct Spec
```

## Overview

Overview Spec is the untyped base used when retrieving a spec from a layer without knowing its concrete type. All concrete spec types (USDPrim.Spec, USDPrim.Property.Spec, etc.) conform to the nested USDLayer.Spec.MetadataCollection and USDLayer.Spec.FieldCollection protocols for shared metadata and field operations.

## Topics

### Protocols

- [USDLayer.Spec.FieldCollection](usdkit/usdlayer/spec/fieldcollection.md)
- [USDLayer.Spec.MetadataCollection](usdkit/usdlayer/spec/metadatacollection.md)

### Initializers

- [init()](usdkit/usdlayer/spec/init().md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-2y5gq.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-3kl4b.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-5d7my.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-5g16z.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-67qus.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-7ecdx.md)
- [init(_:)](usdkit/usdlayer/spec/init(_:)-7vtld.md)

## Relationships

### Conforms To

- [Copyable](swift/copyable.md)
- [Equatable](swift/equatable.md)
- [Escapable](swift/escapable.md)
- [USDLayer.Spec.FieldCollection](usdkit/usdlayer/spec/fieldcollection.md)
- [USDLayer.Spec.MetadataCollection](usdkit/usdlayer/spec/metadatacollection.md)

## See Also

### Accessing scene description by path

- [prim(at:)](usdkit/usdlayer/prim(at:).md)
- [property(at:)](usdkit/usdlayer/property(at:).md)
- [attribute(at:)](usdkit/usdlayer/attribute(at:).md)
- [relationship(at:)](usdkit/usdlayer/relationship(at:).md)
- [spec(at:)](usdkit/usdlayer/spec(at:).md)
- [specType(at:)](usdkit/usdlayer/spectype(at:).md)
- [traverse(at:_:)](usdkit/usdlayer/traverse(at:_:).md)
- [USDLayer.Path](usdkit/usdlayer/path.md)
- [USDLayer.PathExpression](usdkit/usdlayer/pathexpression.md)
- [USDLayer.SpecType](usdkit/usdlayer/spectype.md)
