private static BacNetObject createNotificationForwarder() {
        return b("Notification Forwarder",
            p("Object_Identifier", "BACnetObjectIdentifier", c(R)),
            p("Object_Name", "CharacterString", c(R)),
            p("Object_Type", "BACnetObjectType", c(R)),
            p("Description", "CharacterString", c(O)),
            p("Status_Flags", "BACnetStatusFlags", c(R)),
            p("Reliability", "BACnetReliability", c(R)),
            p("Out_Of_Service", "BOOLEAN", c(R)),
            p("Recipient_List", "BACnetLIST of BACnetDestination", c(R)),
            p("Subscribed_Recipients", "BACnetLIST of BACnetEventNotificationSubscription", c(W)),
            p("Process_Identifier_Filter", "BACnetProcessIdSelection", c(R)),
            p("Port_Filter", "BACnetARRAY[N] of BACnetPortPermission", c(O, 1)),
            p("Local_Forwarding_Only", "BOOLEAN", c(R)),
            p("Reliability_Evaluation_Inhibit", "BOOLEAN", c(O)),
            p("Property_List", "BACnetARRAY[N] of BACnetPropertyIdentifier", c(R)),
            p("Tags", "BACnetARRAY[N] of BACnetNameValue", c(O)),
            p("Profile_Location", "CharacterString", c(O)),
            p("Profile_Name", "CharacterString", c(O))
        );
    }
a map which maps property to type variants
protocols/bacnetip/src/test/java/org/apache/plc4x/protocol/bacnetip/BACnetObjectsDefinitions.java