{
  "iface": "futoin.evt.types",
  "version": "1.1",
  "ftn3rev": "1.7",
  "types": {
    "EventID": {
      "type": "string",
      "regex": "^[1-9][0-9]{0,17}$",
      "desc": "1-999999999999999999 for now"
    },
    "EventType": {
      "type": "string",
      "regex": "^[A-Z_]{1,16}$"
    },
    "EventData": "any",
    "EventTimestamp": {
      "type": "string",
      "regex": "^[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}:[0-9]{2}:[0-9]{2}Z$"
    },
    "Event": {
      "type": "map",
      "fields": {
        "id": "EventID",
        "type": "EventType",
        "data": "EventData",
        "ts": "EventTimestamp"
      }
    },
    "EventList": {
      "type": "array",
      "elemtype": "Event",
      "maxlen": 1000
    },
    "EventTypes": {
      "type": "array",
      "elemtype": "EventType"
    },
    "ConsumerComponent": {
      "type": "string",
      "regex": "^[A-Za-z0-9_]{1,16}$",
      "desc": "Identify component of consumer's side"
    }
  }
}