Then the schema! 
The current XML has quite a bit of options.
I guess they could be organized in several different ways.
One proposal:
{
"id": "emanuele:myaddon",
"name": "A demo mod",
"type": "[avatar|language|modification]",
"credits": "A string of credits.[br]It may contain bcode because we [b]don't[/b] want HTML in here.",
"hooks": [
{
"integrate_something": "myfunction"
}
],
"[install|upgrade|uninstall]": [
{
"for": "1.0 - 1.0.99",
"from": "1.0 - 1.0.99",
"readme": {
"filename": "myhelpfile.html",
"lang": "english",
"parsebbc": "[true|false]",
"type": "[inline|file]"
},
"[code|database]": {
"filename": "myinstall.php",
"type": "[inline|file]"
},
"modification": {
"filename": "mychanges.xml"
},
"[require|create|move|remove]": [
{
"dir": {
"from": "path/to/dir",
"to": "ADIRCONST"
}
},
{
"file": {
"from": "path/to/file.php",
"to": "ADIRCONST"
}
}
]
}
],
"redirect": "?action=myaction"
}
I may have missed something...