struct PublicationBuiltinTopicData {
    @id(0x005A) @key        BuiltinTopicKey_t key;
        octet value[16];
    @id(0x0050)             BuiltinTopicKey_t participant_key;
        octet value[16];
    @id(0x0005)             ObjectName topic_name;
        string<256>
    @id(0x0007)             ObjectName type_name;
        string<256>
    @id(0x0069) @optional   TypeIdV1 type_id;// XTYPES 1.1
    @id(0x0072) @optional   TypeObjectV1 type;// XTYPES 1.1
    @id(0x0075) @optional   XTypes::TypeInformation type_information;// XTYPES 1.2
    @id(0x001D)             DurabilityQosPolicy durability;
        32-bit enum {VOLATILE_DURABILITY_QOS,TRANSIENT_LOCAL_DURABILITY_QOS,TRANSIENT_DURABILITY_QOS,PERSISTENT_DURABILITY_QOS}
    @id(0x001E)             DurabilityServiceQosPolicy durability_service;
        Duration (2xlong) service_cleanup_delay
        32-bit enum {KEEP_LAST_HISTORY_QOS,KEEP_ALL_HISTORY_QOS};
        long history_depth
        long max_samples
        long max_instances
        long max_samples_per_instance
    @id(0x0023)             DeadlineQosPolicy deadline;
        Duration (2xlong) period
    @id(0x0027)             LatencyBudgetQosPolicy latency_budget;
        Duration (2xlong) duration
    @id(0x001B)             LivelinessQosPolicy liveliness;
        32-bit enum {AUTOMATIC_LIVELINESS_QOS,MANUAL_BY_PARTICIPANT_LIVELINESS_QOS,MANUAL_BY_TOPIC_LIVELINESS_QOS}
        Duration (2xlong) lease_duration
    @id(0x001A)             ReliabilityQosPolicy reliability;
        32-bit enum {BEST_EFFORT_RELIABILITY_QOS=1,RELIABLE_RELIABILITY_QOS=2}
        Duration (2xlong) max_blocking_time
    @id(0x002B)             LifespanQosPolicy lifespan;
        Duration (2xlong) duration
    @id(0x002C)             UserDataQosPolicy user_data;
        sequence<octet> 
    @id(0x001F)             OwnershipQosPolicy ownership;
        32-bit enum {SHARED_OWNERSHIP_QOS,EXCLUSIVE_OWNERSHIP_QOS}
    @id(0x0006)             OwnershipStrengthQosPolicy ownership_strength;
        long value
    @id(0x0025)             DestinationOrderQosPolicy destination_order;
        32-bit enum {BY_RECEPTION_TIMESTAMP_DESTINATIONORDER_QOS,BY_SOURCE_TIMESTAMP_DESTINATIONORDER_QOS}
    @id(0x0021)             PresentationQosPolicy presentation;
        32-bit enum {INSTANCE_PRESENTATION_QOS,TOPIC_PRESENTATION_QOS,GROUP_PRESENTATION_QOS}
        boolean (octet) coherent_access
        boolean (octet) ordered_access
    @id(0x0029)             PartitionQosPolicy partition;
        sequence<string>
    @id(0x002E)             TopicDataQosPolicy topic_data;
        sequence<octet>
    @id(0x002D)             GroupDataQosPolicy group_data;
        sequence<octet>
    @id(0x0073)             DataRepresentationQosPolicy representation;
        sequence<short>
};

struct SubscriptionBuiltinTopicData {
    - durability service
    - ownership strength
    - lifespan
    @id(0x0004) TimeBasedFilterQosPolicy time_based_filter;
        Duration (2xlong) minimum_separation
    @id(0x0074) TypeConsistencyEnforcementQosPolicy type_consistency;
        16-bit enum {DISALLOW_TYPE_COERCION,ALLOW_TYPE_COERCION}
        boolean (octet) ignore_sequence_bounds
        boolean (octet) ignore_string_bounds
        boolean (octet) ignore_member_names
        boolean (octet) prevent_type_widening
        boolean (octet) force_type_validation
}


PID_DOMAIN_ID                           DomainId_t
    long
PID_DOMAIN_TAG                          string<256>
    string<256>
PID_PROTOCOL_VERSION                    ProtocolVersion_t
    octet[2]
PID_VENDORID                            VendorId_t
    octet[2]
PID_UNICAST_LOCATOR                     Locator_t
PID_MULTICAST_LOCATOR                   Locator_t
PID_DEFAULT_UNICAST_LOCATOR             Locator_t
PID_DEFAULT_MULTICAST_LOCATOR           Locator_t
PID_METATRAFFIC_UNICAST_LOCATOR         Locator_t
PID_METATRAFFIC_MULTICAST_LOCATOR       Locator_t
    long        kind
    long        port
    octet[16]   address
PID_EXPECTS_INLINE_QOS                  boolean
    boolean (octet)
PID_PARTICIPANT_MANUAL_LIVELINESS_COUNT Count_t
    long
PID_PARTICIPANT_LEASE_DURATION          Duration_t
    long    seconds
    long    fraction
PID_CONTENT_FILTER_PROPERTY             ContentFilterProperty_t
    string<256>         contentFilteredTopicName
    string<256>         relatedTopicName
    string<256>         filterClassName
    string              filterExpression
    sequence<string>    expressionParameters
PID_PARTICIPANT_GUID                    GUID_t
PID_GROUP_GUID                          GUID_t
PID_ENDPOINT_GUID                       GUID_t
    octet[12]   guidPrefix
    octet[3]    entityKey
    octet       entityKind
PID_BUILTIN_ENDPOINT_SET                BuiltinEndpointSet_t
    bitmask {
        @position(0)    DISC_BUILTIN_ENDPOINT_PARTICIPANT_ANNOUNCER,
        @position(1)    DISC_BUILTIN_ENDPOINT_PARTICIPANT_DETECTOR,
        @position(2)    DISC_BUILTIN_ENDPOINT_PUBLICATIONS_ANNOUNCER,
        @position(3)    DISC_BUILTIN_ENDPOINT_PUBLICATIONS_DETECTOR,
        @position(4)    DISC_BUILTIN_ENDPOINT_SUBSCRIPTIONS_ANNOUNCER,
        @position(5)    DISC_BUILTIN_ENDPOINT_SUBSCRIPTIONS_DETECTOR,
        @position(10)   BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_WRITER,
        @position(11)   BUILTIN_ENDPOINT_PARTICIPANT_MESSAGE_DATA_READER,
        @position(28)   DISC_BUILTIN_ENDPOINT_TOPICS_ANNOUNCER,
        @position(29)   DISC_BUILTIN_ENDPOINT_TOPICS_DETECTOR
    }
PID_BUILTIN_ENDPOINT_QOS                BuiltinEndpointQos_t
    bitmask {
        @position(0)    BEST_EFFORT_PARTICIPANT_MESSAGE_DATA_READER
    }
PID_PROPERTY_LIST                       sequence<Property_t>
    sequence{
        string  name
        string  value
    }
PID_TYPE_MAX_SIZE_SERIALIZED            long
    long
PID_ENTITY_NAME                         EntityName_t
    string

PID_CONTENT_FILTER_INFO                 ContentFilterInfo_t
    sequence<long>  FilterResult_t
    sequence<long>  FilterSignatureSequence
PID_COHERENT_SET                        SequenceNumber_t
    SequenceNumber (2xlong)
PID_GROUP_COHERENT_SET                  SequenceNumber_t
    SequenceNumber (2xlong)
PID_GROUP_SEQ_NUM                       SequenceNumber_t
    SequenceNumber (2xlong)
PID_WRITER_GROUP_INFO                   GroupDigest_t
    octet[4]
PID_SECURE_WRITER_GROUP_INFO            GroupDigest_t
    octet[4]
PID_ORIGINAL_WRITER_INFO                OriginalWriterInfo_t
    GUID octet[16]          originalWriterGUID
    SequenceNumber (2xlong) originalWriterSN
PID_KEY_HASH                            KeyHash_t
    octet[16]
PID_STATUS_INFO                         StatusInfo_t
    octet[4]



