Hi,
A text box (custom field of the table "item" and of the type "textarea") is a potential solution. The issue with that is that the user might not wrote a valid choice and you will have to talk with him to see what he really wanted.
In your case, I would look at creating a specific product with all the potential choice of colors/type as variants. I would place that product in an unpublished category so that it doesn't display on your products listings. Finally, I would add it as many times as needed in the products as an "option".
Regarding the price changing after 5 options selected, I don't see a solution.