import Foundation /// Who/what a flag evaluation is for — mirrors Atomenta's `context.subjectType` enum. public enum FeatureControlSubjectType: String, Codable, Sendable { case user, customer, store, anonymous } /// Evaluation context sent as `context` in `POST /api/feature-control/evaluate`. public struct FeatureControlContext: Encodable, Sendable, Equatable { public var subjectType: FeatureControlSubjectType public var subjectId: String public var storeId: String? public var platform: String? public var appVersion: String? public var attributes: [String: String]? public init(subjectType: FeatureControlSubjectType, subjectId: String, storeId: String? = nil, platform: String? = nil, appVersion: String? = nil, attributes: [String: String]? = nil) { self.subjectType = subjectType self.subjectId = subjectId self.storeId = storeId self.platform = platform self.appVersion = appVersion self.attributes = attributes } }