I want to understand that code in brief 1.attechement 2.template_type 3.elment 4,subtital and title difference 5. type and post (how these are work)

class SessionMoreConfrenceDetails(Action):

        def name(self):


         return "action_session_more_confrence_details"

       def run(self,dispatcher,tracker,domain): 

     gt = {
        "attachment": {
            "type": "template",
            "payload": {
                "template_type": "generic",
                "elements": [
                    {
                        "title": "Build  a chatbot with Dialogflow",
                        "subtitle": "How to build a chatbot with Dialogflow within 15 miniutes.",
                        "buttons": [
                            {
                                "type": "postback",
                                "payload": "/session_one_speaker_details",
                                "title": "View Speakers"
                            },
                           
                            
                        ]
                    },
                    
                    
                ]
            }
        }
    }

dispatcher.utter_custom_json(gt)

return [ ]