In next refactor, proposed structure:

hda_ui_manger.py <- Master interface which is used by the HDA to perform user actions and
                    update parms/UI accordingly.

ui_interface.py <- Contains the abstract base class used by below classes to interface
                    between cstock_classes and houdini parms. Contains:
                        set_ui(list_of_cstock_classes) <- Take a list of cstock classes and update the HDA UI parms accordingly
                        to_cstock() <- Create cstock_class_instances from the current hda parm values.

proj_input_setup_ui.py <- Interface for interacting with the proj_input section of the HDA
proj_input_test_ui.py <- Interface for interacting with the proj_input_test section of the HDA
job_input_ui.py <- Interface for interacting wih the job_input section of the HDA

parms/
    # 
    # General-purpose parm interfacing tools at the top level here
    # 

    parm_names.py <- Stores parm folder/names, for HDA UI interaction

    parm_data.py <- A class that stores all the parm data used to instantiate parms. This
    should replace the hparms.py 'create_parms' dictionaries. This will allow better 
    type hinting. This class can deliver '.as_parms()' to get concrete hou parms instead
    of the parm_data class.

    parm_processor.py <- A class with functionality to interface with currently existing 
    hou parms. Includes functionality for loading hda_parm_data into existing UI parms or
    for creating class instances by reading the existing data in hou_parms. This is achieved
    using houdini's parm 'tags' which declare which cstock_class attributes a particular 
    parm is related to.

    hparms.py <- general-purpose houdini parm actions. No connection with ceonstock or HDA
    logic, just useful functions for interfacing with houdini. 

    #
    # --- Parm Builders ---
    # Conversions between hda_parm_data class instances and cstock classes for a particular
    # UI context (proj_input_setup, proj_input_testing, job_input import etc).
    # Handles all type-specific generations internally.
    # Does NOT modify the parms, parm modifications will be handled by the hda_ui_manager.
    #

    proj_input/ <- Receive a SINGLE cstock_proj_input instance and outputs hda_parm_data. Or, load
                    a cstock_proj_input instance from existing parms.         
        proj_input_parms.py
        types/ 
            col
            img
            dropdown
            ...

    proj_input_test/ <- Receives a SINGLE cstock_proj_input instance and outputs hda_parm_data.
                        Or, load a cstock_job_input instance from existing parm entries.
        proj_input_test_parm.py
        types/
            col
            img
            dropdown
            ...

    job_input/  <- Receive a SINGLE cstock_job_input instance and output hda_parm_data. This is
                    import-only.
        job_input_parms.py
        types/
            col
            img
            dropdown
            ...

VERSION.py <- Current hou plugin version

