type InitHeader struct {
controllers [String]
}
type InitPayload struct {
header InitHeader
data optional Any
}
type InitJWS struct { // This is a DagJWS
payload String
signatures [Signature]
link: &InitPayload
}
type InitEvent InitPayload | InitJWS
type Event InitEvent | DataEvent | TimeEvent
type DataHeader struct {
controllers optional [String]
}
type DataEventPayload struct {
id &InitEvent
prev &Event
header optional DataHeader
data Any
}
type DataEvent struct { // This is a DagJWS
payload String
signatures [Signature]
link: &DataEventPayload
}
type TimeEvent struct {
id &InitEvent
prev &DataEvent | &InitEvent
proof Link
path String
}
type Signature struct {
header optional { String : Any }
// The base64url encoded protected header, contains:
// `kid` - the DID URL used to sign the JWS
// `cap` - IPFS url of the CACAO used (optional)
protected optional String
signature String
}
type EventJWS struct {
payload String
signatures [Signature]
link: &Event
}