(0) сделать можно любым из описанных тобой способов. И еще сверху десяток наизобретать. А вот для того, чтобы осознанно выбрать правильный вариант, надо знать детали того, как это использоваться будет и посмотреть, как пользователям это будет удобнее вводить.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший