// WARNING: This file is machine generated by fidlgen.

// fidl_experiment = output_index_json

#include <lib/fidl/internal.h>

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_ResponseTable;
const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_ResponseTable;
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_ResponseTable;
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResponseTable;

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventFieldsRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolFlexibleEventFieldsRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventFieldsRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictEventFieldsRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventFieldsRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictEventFieldsRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWay_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventFieldsRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolFlexibleEventFieldsRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocolStrictEventFieldsRequestTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictEventFieldsRequest",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayFieldsResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictTwoWayFieldsResponse",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFields_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWay_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayErr_Response",
    .is_empty = kFidlEmpty_IsEmpty,
    .size_v2 = 1,
    .elements = NULL,
    .element_count = 0,
};

const struct FidlCodedStruct test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_ResponseTable = {
    .tag = kFidlTypeStruct,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Response",
    .is_empty = kFidlEmpty_IsNotEmpty,
    .size_v2 = 4,
    .elements = NULL,
    .element_count = 0,
};

static const struct FidlTableField Fields87test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields92test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventTableRequest[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventTableRequestTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolFlexibleEventTableRequest",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventTableRequest,
    .field_count = 1,
};

static const struct FidlTableField Fields79test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventTableRequest[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventTableRequestTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictEventTableRequest",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventTableRequest,
    .field_count = 1,
};

static const struct FidlTableField Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields86test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields89test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields89test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields94test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields94test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields81test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventTableRequest[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventTableRequestTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictEventTableRequest",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventTableRequest,
    .field_count = 1,
};

static const struct FidlTableField Fields83test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields88test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields83test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields90test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields77test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventTableRequest[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventTableRequestTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolFlexibleEventTableRequest",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventTableRequest,
    .field_count = 1,
};

static const struct FidlTableField Fields75test_unknowninteractions_UnknownInteractionsProtocolStrictEventTableRequest[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocolStrictEventTableRequestTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictEventTableRequest",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields75test_unknowninteractions_UnknownInteractionsProtocolStrictEventTableRequest,
    .field_count = 1,
};

static const struct FidlTableField Fields77test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayTableResponse[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayTableResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictTwoWayTableResponse",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayTableResponse,
    .field_count = 1,
};

static const struct FidlTableField Fields84test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields81test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTable_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_Response,
    .field_count = 1,
};

static const struct FidlTableField Fields82test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_Response[] = {
    {.ordinal = 1, .type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedTable test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_ResponseTable = {
    .tag = kFidlTypeTable,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayTableErr_Response",
    .is_resource = kFidlIsResource_NotResource,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields87test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsAjarDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields85test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields91test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields91test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields91test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields92test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsAjarDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventUnionRequest[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventUnionRequestTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolFlexibleEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventUnionRequest,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventUnionRequestNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolFlexibleEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolFlexibleEventUnionRequest,
    .field_count = 1,
};

static const struct FidlUnionField Fields79test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventUnionRequest[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventUnionRequestTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventUnionRequest,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventUnionRequestNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsAjarProtocolStrictEventUnionRequest,
    .field_count = 1,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsAjarProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields79test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields85test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsAjarProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields89test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields89test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields89test_unknowninteractions_UnknownInteractionsClosedDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields87test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields93test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields93test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields93test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields94test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields94test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields94test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields92test_unknowninteractions_UnknownInteractionsClosedDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventUnionRequest[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventUnionRequestTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventUnionRequest,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventUnionRequestNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsClosedProtocolStrictEventUnionRequest,
    .field_count = 1,
};

static const struct FidlUnionField Fields83test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsClosedProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields87test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields88test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsClosedProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields83test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsDriverProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields83test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields89test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields89test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields89test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFieldsErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayFields_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTableErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayTable_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields90test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields90test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnionErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields85test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWayUnion_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields80test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWay_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_FlexibleTwoWay_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsDriverProtocol_FlexibleTwoWay_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields87test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields88test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields86test_unknowninteractions_UnknownInteractionsDriverProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields77test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventUnionRequest[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventUnionRequestTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolFlexibleEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventUnionRequest,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventUnionRequestNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolFlexibleEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolFlexibleEventUnionRequest,
    .field_count = 1,
};

static const struct FidlUnionField Fields75test_unknowninteractions_UnknownInteractionsProtocolStrictEventUnionRequest[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolStrictEventUnionRequestTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields75test_unknowninteractions_UnknownInteractionsProtocolStrictEventUnionRequest,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolStrictEventUnionRequestNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictEventUnionRequest",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields75test_unknowninteractions_UnknownInteractionsProtocolStrictEventUnionRequest,
    .field_count = 1,
};

static const struct FidlUnionField Fields77test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayUnionResponse[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayUnionResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayUnionResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocolStrictTwoWayUnionResponse",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocolStrictTwoWayUnionResponse,
    .field_count = 1,
};

static const struct FidlUnionField Fields77test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields77test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields83test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields83test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFieldsErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields80test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFields_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayFields_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayFields_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTableErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTable_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayTable_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayTable_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields84test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields84test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnionErr_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnion_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnion_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnion_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWayUnion_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields79test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWayUnion_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields74test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_ResponseTable},
    {.type = NULL},
    {.type = (const fidl_type_t*)&fidl_internal_kFrameworkErrTable},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWay_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields74test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_Result,
    .field_count = 3,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_FlexibleTwoWay_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields74test_unknowninteractions_UnknownInteractionsProtocol_FlexibleTwoWay_Result,
    .field_count = 3,
};

static const struct FidlUnionField Fields75test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields75test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields75test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields81test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields81test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayFieldsErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayTableErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayTableErr_Result,
    .field_count = 2,
};

static const struct FidlUnionField Fields82test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Response[] = {
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResponseTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResponseNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayUnionErr_Response",
    .strictness = kFidlStrictness_Flexible,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields82test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Response,
    .field_count = 1,
};

static const struct FidlUnionField Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Result[] = {
    {.type = (const fidl_type_t*)&test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResponseTable},
    {.type = (const fidl_type_t*)&fidl_internal_kInt32Table},
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResultTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nonnullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
const struct FidlCodedUnion test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_ResultNullableRefTable = {
    .tag = kFidlTypeUnion,
    .name = "test.unknowninteractions/UnknownInteractionsProtocol_StrictTwoWayUnionErr_Result",
    .strictness = kFidlStrictness_Strict,
    .is_resource = kFidlIsResource_NotResource,
    .nullable = kFidlNullability_Nullable,
    .fields = Fields80test_unknowninteractions_UnknownInteractionsProtocol_StrictTwoWayUnionErr_Result,
    .field_count = 2,
};
