<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: -",
    "macOS: 27.0.0 -",
    "tvOS: 27.0.0 -",
    "visionOS: 27.0.0 -",
    "watchOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "AppIntents",
  "identifier" : "/documentation/AppIntents/IntentValueConvertibleWrapper",
  "metadataVersion" : "0.1.0",
  "role" : "Protocol",
  "symbol" : {
    "kind" : "Protocol",
    "modules" : [
      "App Intents"
    ],
    "preciseIdentifier" : "s:21AppIntentsTypeSupport29IntentValueConvertibleWrapperP"
  },
  "title" : "IntentValueConvertibleWrapper"
}
-->

# IntentValueConvertibleWrapper

A protocol for types that wrap another intent value that supports conversion.

```
protocol IntentValueConvertibleWrapper : IntentValueConvertible
```

## Overview

`IntentValueConvertibleWrapper` enables you to create specialized types that derive their
`IntentValueConvertible` conformance from an underlying base type. This pattern allows you
to extend existing convertible types with additional functionality while preserving their
ability to work within the AppIntents framework.

Use this protocol when you want to create a type that:

- Wraps an existing `IntentValueConvertible` type
- Adds domain-specific properties or methods
- Maintains compatibility with the AppIntents framework

## Example

```swift
struct LandmarkEntity: IntentValueConvertibleWrapper {
    var baseValue: AnyAppEntity

    init(baseValue: AnyAppEntity) {
        self.baseValue = baseValue
    }

    var continent: String {
        get throws {
            try baseValue.continent
        }
    }
}
```

## Topics

### Associated Types

[`associatedtype BaseValue : IntentValueConvertible`](/documentation/AppIntents/IntentValueConvertibleWrapper/BaseValue-swift.associatedtype)

The underlying type that provides protocol conformance.

### Initializers

[`init(baseValue: Self.BaseValue) throws`](/documentation/AppIntents/IntentValueConvertibleWrapper/init(baseValue:))

Creates a new instance that wraps the specified base value.

### Instance Properties

[`var baseValue: Self.BaseValue`](/documentation/AppIntents/IntentValueConvertibleWrapper/baseValue-swift.property)

The underlying value that this type wraps.

## Relationships

### Inherits From

[`Sendable`](/documentation/Swift/Sendable)

[`IntentValueExpressing`](/documentation/AppIntents/IntentValueExpressing)

[`SendableMetatype`](/documentation/Swift/SendableMetatype)

[`IntentValueConvertible`](/documentation/AppIntents/IntentValueConvertible)

---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)