Отделите логику от визуализации. То есть допустим есть класс змейки. У нее есть события перемещения. Подписываемся на события змейки. При срабатывании получаем её положение из передаем их во класс визуализации.
Для консоли это будет один класс, для winforms другой и т .д. Все классы визуализации должны будут реализовывать общий интерфейс.
Вах... 2015 год...
Graceful Degradation также относится и к скриптам.
Используйте функции из https://modernizr.com/ для подпорки костылями старых браузеров.
Все норм.
Забейте верхний ряд экрана иконками и поймете почему так.
Можете изменить настройки размера значков (в настройках темы), чтобы сетка ровно в край экрана утыкалась.
Усё ясно. Проблема в том, что вы привыкли работать с графическим типом информации, но у большинства пользователей акцент смещен в сторону текста.
Если решитесь собирать команду, то даже не упоминайте идею о создании своей ос с нуля. Возьмите за основу дист линукса, например дебиан и пилите только DE.
Как бы сделал я, чтобы никого не путать.
Никаких сдвоенных корзин.
Если в корзине лежать "материальные товары", то запрашиваем данные доставки.
Если информационные товары, но запрашиваем email.
Если и то и другое, то запрашиваем все данные.