{
  "evt_address": "uint128",
  "name": "uint64",
  "name128": "uint128",
  "checksum160": "fixed_bytes20",
  "checksum256": "fixed_bytes32",
  "checksum512": "fixed_bytes64",
  "signature": "fixed_bytes65",
  "public_key": "fixed_bytes33",
  "address": "string",
  "message_type": "fixed_string16",
  "symbol": "uint64",
  "field_name": "string",
  "account_name": "name",
  "permission_name": "name",
  "type_name": "string",
  "token_name": "name128",
  "table_name": "name",
  "scope_name": "name",
  "action_name": "name",
  "domain_name": "name128",
  "domain_key": "name128",
  "time_point": "int64",
  "time_point_sec": "time",
  "block_id": "fixed_bytes32",
  "checksum_type": "fixed_bytes32",
  "checksum256_type": "fixed_bytes32",
  "checksum512_type": "fixed_bytes64",
  "checksum160_type": "fixed_bytes20",
  "sha256": "fixed_bytes32",
  "sha512": "fixed_bytes64",
  "sha160": "fixed_bytes20",
  "weight_type": "uint16",
  "block_num_type": "uint32",
  "share_type": "int64",
  "digest_type": "checksum_type",
  "context_free_type": "bytes",
  "unsigned_int": "varuint32",
  "bool": "uint8",

  "extensions_type": {
    "base": "",
    "fields": {
      "type": "uint16",
      "data": "bytes"
    }
  },
  "transaction_header": {
    "base": "",
    "fields": {
      "expiration": "time",
      "ref_block_num": "uint16",
      "ref_block_prefix": "uint32",
      "max_charge": "uint32"
    }
  },
  "transaction": {
    "base": "transaction_header",
    "fields": {
      "actions": "action[]",
      "payer": "address"
    }
  },
  "signed_transaction": {
    "base": "transaction",
    "fields": {
      "signatures": "signature[]"
    }
  },
  "fields": "field_def[]",
  "field_def": {
    "fields": {
      "name": "field_name",
      "type": "type_name"
    }
  },
  "asset": {
    "fields": {
      "amount": "share_type",
      "sym": "symbol"
    }
  },
  "producer_key": {
    "fields": {
      "producer_name": "account_name",
      "block_signing_key": "public_key"
    }
  },
  "producer_schedule": {
    "fields": {
      "version": "uint32",
      "producers": "producer_key[]"
    }
  },
  "chain_config": {
    "fields": {
      "target_block_size": "uint32",
      "max_block_size": "uint32",
      "target_block_acts_per_scope": "uint32",
      "max_block_acts_per_scope": "uint32",
      "target_block_acts": "uint32",
      "max_block_acts": "uint32",
      "real_threads": "uint64",
      "max_storage_size": "uint64",
      "max_transaction_lifetime": "uint32",
      "max_authority_depth": "uint16",
      "max_transaction_exec_time": "uint32",
      "max_inline_depth": "uint16",
      "max_inline_action_size": "uint32",
      "max_generated_transaction_size": "uint32"
    }
  },
  "type_def": {
    "base": "",
    "fields": {
      "new_type_name": "type_name",
      "type": "type_name"
    }
  },
  "struct_def": {
    "base": "",
    "fields": {
      "name": "type_name",
      "base": "type_name",
      "fields": "fields"
    }
  },
  "clause_pair": {
    "base": "",
    "fields": {
      "id": "string",
      "body": "string"
    }
  },
  "abi_def": {
    "base": "",
    "fields": {
      "types": "type_def[]",
      "structs": "struct_def[]",
      "actions": "action_def[]",
      "tables": "table_def[]",
      "ricardian_clauses": "clause_pair[]"
    }
  },
  "table_def": {
    "base": "",
    "fields": {
      "name": "table_name",
      "index_type": "type_name",
      "key_names": "field_name[]",
      "key_types": "type_name[]",
      "type": "type_name"
    }
  },
  "action": {
    "base": "",
    "fields": {
      "name": "action_name",
      "domain": "domain_name",
      "key": "domain_key",
      "data": "bytes"
    }
  },
  "action_def": {
    "base": "",
    "fields": {
      "name": "action_name",
      "type": "type_name",
      "ricardian_contract": "string"
    }
  },
  "block_header": {
    "base": "",
    "fields": {
      "previous": "checksum256",
      "timestamp": "uint32",
      "transaction_mroot": "checksum256",
      "action_mroot": "checksum256",
      "block_mroot": "checksum256",
      "producer": "account_name",
      "schedule_version": "uint32",
      "new_producers": "producer_schedule?"
    }
  },
  "packed_transaction": {
    "fields": {
      "signatures": "signature[]",
      "compression": "uint8",
      "packed_context_free_data": "bytes",
      "packed_trx": "bytes"
    }
  }
}
