You do realise that writing Tangled records for issues, pulls, whatever constitutes both a spec and API.

The fact that you use a protocol to define it is beside the point. You still have to define what a Tangled record is, and the interface that accepts it, and the mechanism to resolve it on the client.

How else do you define what a 'tangled' is even if the underlying structure is git.