import Foundation

/// Earswet iOS adapter rule:
/// candidateValuePresence does not imply rawValueAccess.
/// If rawValueAccess is false, update status/reason/evidence UI only.
public struct EarswetDecision: Codable {
    public let markerId: String
    public let rawValueAccess: Bool
    public let outputMode: String
    public let reasonCode: String
    public let evidencePacketId: String?
}

public func shouldUpdateActualValueCharacteristic(_ decision: EarswetDecision) -> Bool {
    return decision.rawValueAccess &&
        (decision.outputMode == "full_value" || decision.outputMode == "limited_value")
}
