описание типа attribute

Любой объект характеризуется определённым набором признаков: лёгкий - тяжёлый, высокий - низкий, горячий или зелёный, и т.д. Признаки влияют на поведение объекта в игре - тяжёлое невозможно поднять, горячим можно обжечься. При этом признаки можно абстрагировать от предмета и говорить о них как о самостоятельных понятиях. Для признаков можно построить отдельное классовое дерево: синее и красное и это цвет, большое и маленькое - размер.
С программной точки зрения, признак объекта - это свойство булевого типа, имеющее осмысленное имя. Для управления одноимёнными булевыми свойствами вводятся классы специального типа - признак|attribute, соответствующие абстрагированным от объектов признакам.
В терминологии ООП признак|attribute - это классы логических свойств объектов.


Что-то я сомневаюсь в понятности написанного, особенно 2й абзац  %-)
Может быть картинку еще нарисовать?