Usage
class Usage<Subject> @RestrictTo(value = [RestrictTo.Scope.LIBRARY_GROUP] ) constructor(val rawValue: String)(source)
Identifies an AI use case — one key per evaluable feature.
Apps don't declare these. Each SDK feature that runs evaluations exposes its own typed constant, which is what you pass to AirshipAi.setContextProvider and compare against in a ModelResolver.
Subject is the feature-specific data a provider receives, so registering a provider for the wrong usage is a compile error.
rawValue alone is the identity: providers are keyed by it, and because the SDK owns every constant there is exactly one Subject per key. That is also what lets a Usage<*> — the erased form handed to a ModelResolver or carried on an EvaluationRecord — be compared against a feature's typed constant with ==.
Parameters
rawValue
The usage key.