I have solved this problem.
The answer was in the WWDC25 video Get to know App Intends.
Here's an example of an WidgetConfigurationIntent to toggle a chart showing data points on or off including icons for the two data point display options.
struct WatchDataPointsWidgetIntent: AppIntent, WidgetConfigurationIntent {
static var title: LocalizedStringResource = "Data Points Widget Configuration"
static var description = IntentDescription("Configure individual data point display for Watch Widgets.")
static var isDiscoverable: Bool { return false}
init() {}
func perform() async throws -> some IntentResult {
print("WatchDataPointsWidgetIntent perform")
return .result()
}
@Parameter(title: "Chart Display Options", default: ChartDataPointsOption.showDataPoints)
var showDataPoints: ChartDataPointsOption?
static var parameterSummary: some ParameterSummary {
Summary("Chart Options: \(\.$showDataPoints)")
}
}
enum ChartDataPointsOption: String, AppEnum {
case showDataPoints
case hideDataPoints
static let typeDisplayRepresentation = TypeDisplayRepresentation(name: "Chart Display Data Points")
static let caseDisplayRepresentations: [Self: DisplayRepresentation] = [
ChartDataPointsOption.showDataPoints: DisplayRepresentation(title: "Individual Data Points", image: .init(systemName: "chart.dots.scatter")),
ChartDataPointsOption.hideDataPoints: DisplayRepresentation(title: "Percentiles Only", image: .init(systemName: "chart.line.uptrend.xyaxis"))
]
}