К первому вопросу: как описать следующее свойство?
Class({
prop: {a: [f1, f2, f3, f4], b: [f5, f6], c: [f7, f8, f9, f10, f11, f12], d:[]}
})
Где fX - функции
Upd: даже не так. fX - объект с фиксированной структурой: {f, ctx, name}
prop object { array [ object { f: f, ctx: object, name: x } ]