Make Google Home integration support ALL device types

NOTE: I am aware that GH has integration for covers that is similar to my eg … but this request is to enable ANY device in GH … such as microwaves etc … I just did a garage door because it is a simple eg to demonstrate - this eg also supports things that cover does not - such as raising errors when an obstruction is detected.

In the documentation there is a heap of devices some of which I have in HA … but don’t have proper support for GH integration.

It would be nice if there was generic support so we could implement custom GH device integrations generically with HA based of the GH documentation… for e.g.:

google_assistant:
  project_id: i00-home-assistant
  api_key: !secret GoogleAssistantAPI
  expose_by_default: true
  exposed_domains: #<< this will be ignored because expose_by_default: true
    - light
    - camera
    - sensor
  custom_entities:
    - type: 'GARAGE' #Type from https://developers.google.com/assistant/smarthome/guides

      #Standard entity_config data (expose always defaults to true since you have a custom_entities ... but can be set to false to temp hide)
      name: 'GarageDoor1'
      aliases:
        - 'Door 1'
      room: 'Garage'

      #Custom stuff that should allow for ANY future device type intergration with GH
      traits:
        - type: OpenClose
          discreteOnlyOpenClose: false
          openDirection:
            - up
            - down
          openState:
            openPercent: '{{ states.sensor.garage_door1.state }}'
            openDirection: 'up'
      execute:
        - command: OpenClose #Documentation: https://developers.google.com/assistant/smarthome/traits/openclose.html
          #OpenClose will be automatically triggered when a request is made with device id of 'GarageDoor1' in this eg
          errors: #Errors that can be raised are defined in the Garage documentation
            - type: 'obstructionDetected'
              if: "{{ params.openPercent < states.sensor.garage_door1.state and states.sensor.garage_door1_beam.state == 'blocked' }}"
            - type: 'lockedState'
              if: '{{ states.sensor.garage_door1_locked.state }}'
          action: #Standard action (like in automatons - but with template always supported - params is part of the request json)
            - entity_id: states.sensor.garage_door1.state
              service: input_number.set_value
              value: '{{ params.openPercent }}'

  entity_config:
    ...

Thanks,
Kris