Issue #634

public enum Weapon: String, Decodable {
    case sword = "SWORD"
    case gun = "GUN"
    case unknown = "UNKNOWN"

    public init(from decoder: Decoder) throws {
        let rawValue = try decoder.singleValueContainer().decode(String.self)
        self = Weapon(rawValue: rawValue) ?? .unknown
    }
}