Suite aux discussions de vendredi dernier, voici une deuxième version du schéma, avec pour changements principaux :
la prise en compte d'un id pour les temps, et l'ajout d'une date de début et d'une date de fin pour définir l'intervalle de mise à jour,
la date de fin étant optionnelle (si elle n'est pas présente, la mise à jour prend comme fin de période la date courante). Le terme de
path a été changé en id pour pouvoir coller à différents modèles (dans le cas de jtimer il s'agit du path de la tâche, pour wid ça pourra être le tag).{
    "description": "schema for the update of the times of a project/task",
    "$schema": "http://json-schema.org/draft-04/schema#",

    "definitions": {
        "task": {
            "type":"object",
            "properties": {
                "id":           {"type": "string"},
                "startDate" :   {"type": "string"},
                "endDate"   :   {"type": "string"},
                "totalTime":    {"type":"integer"},
                "periods": {
                    "type":"array",
                    "items" : {
                            "type" : "object",
                            "properties": {
                                "id":       {"type":"string"},
                                "startDate":{"type" : "string"},
                                "duration": {"type":"integer"}
                            }
                    },
                    "minItems" : 1
                },
                "name":         {"type": "string"},
                "annotation":   {"type": "string"},
                "subtasks": {
                    "type": "array",
                    "items": {"$ref":"#/definitions/task"}
                }
            },
            "required":["id", "startDate", "totalTime", "periods"]
        }
    },
    "type":"object",
    "properties": {
        "task": {"$ref":"#/definitions/task"}
    }
}

avec un exemple :

{
    "id":"path/le/chien",
    "startDate":"2002/02/02T00:00:00.000Z",
    "totalTime":300,
    "periods": [
        {"id": "anAmazingID", "startDate":"2016/04/03T00:00:00.000Z", "duration":175},
        {"id": "anOtheriD", "startDate": "2002/02/02T00:00:00.000Z", "duration": 78},
        {"id": "IDitAgain", "startDate": "2006/10/20T00:00:00.000Z", "duration":58}
        ],
    "name":"6882",
    "annotation":"bla",
    "subtasks": [ ]

}