- we do not expect the WASM module to do some direct interactions with the Git repository (no I/O at this point), Tuleap will give per-processed information to the WASM modules, it could be something like this:
 
{
    "refname": "<given_refname>",
    "objects": [
        {"type": "<type of object as given by git cat-file -t <ref>>", "content": "<content of the object as given by git cat-file <type> <ref>>"},
        ...
    ]
}
- when everything if fine the WASM module should return
 
{"rejection_message": null}
- when rejecting something the WASM module should return
 
{"rejection_message": "some string explaining why this should be rejected"}
- WASM modules needs to be put under 
/var/lib/tuleap/wasm/git/pre-receive-<repository_id>.wasm to be found 
- parts of the infrastructure loading and executing WASM code must be put in the Tuleap core (i.e. under 
src/common/), parts specific to Git must be put in the Git plugin