Now components look like black box and developer should go deeper (methods, template) to know how component work inside and what data they accept. I think, we should add validation for input.
Example:
Component.types = {
watcher: {
name: String, // Required by-default.
age: {
required: false,
type: Number
}
},
attributes: ['id', 'type', 'cat-id'], // All attributes is strings
props: {
theme: String
}
};