[
  {
    "name": "Account",
    "fields": [
      { "name": "id", "type": "Bytes!" },
      { "name": "asCounter", "type": "CounterContract" },
      {
        "name": "CounterIncrementedEvents",
        "type": "CounterIncremented!",
        "derived": "emitter"
      }
    ]
  },
  {
    "name": "CounterContract",
    "fields": [
      { "name": "asAccount", "type": "Account!" },
      { "name": "currentValue", "type": "BigInt!" },
      {
        "name": "CounterIncrementedEvent",
        "type": "CounterIncremented!",
        "derived": "contract"
      }
    ]
  },
  {
    "name": "CounterIncremented",
    "immutable": true,
    "parent": "Event",
    "fields": [
      { "name": "emitter", "type": "Account!" },
      { "name": "transaction", "type": "Transaction!" },
      { "name": "timestamp", "type": "BigInt!" },
      { "name": "contract", "type": "CounterContract!" },
      { "name": "currentValue", "type": "BigInt!" }
    ]
  }
]
