это к тому что куки - это действительно просто заголовки + некоторые политики доступа.. если клиент еще и с заголовками не умеет работать (привет, unity 3d) то это совсем днищще
Не до конца понятно для чего, но ты можешь передавать аргумент без указания типа и в начале функции проводить проверку например является ли параметр объектом или экземпляром какого-то базового класса если таковой у тебя имеется