def generic_layer_dict_maker() -> dict:
    """Just a function that puts all of the standard layer definitions and 
    their corresponding allowed amino acids into a convenient dictionary.
    As of versions > 0.7.0, made layers more restrictive. Old definitions 
    for helices were: 
    "core AND helix": 'AFILVWYNQHM',
    "boundary AND helix_start": 'ADEHIKLNPQRSTVY',
    "boundary AND helix": 'ADEHIKLNQRSTVYM'
    As of versions > 0.8.0, made layers slightly less restrictive. Old 
    definitions for helices were: 
    "core AND helix": 'AILVYNQHM',
    "boundary AND helix_start": 'ADEHKNPQRST',
    "boundary AND helix": 'ADEHKNQRST'
    Args:
        None

    Returns:
        layer_dict (dict): The dict mapping standard layer definitions to 
        their allowed amino acids.
    
    """
    layer_dict = {"core AND helix_start": 'AFILVWYNQSTHP',
                  "core AND helix": 'AFILVYNQHM',
                  "core AND loop": 'AFGILPVWYDENQSTHM',
                  "core AND sheet": 'FILVWYDENQSTH',
                  "boundary AND helix_start": 'ADEHIKLNPQRSTV',
                  "boundary AND helix": 'ADEHIKLNQRSTVM',
                  "boundary AND loop": 'ADEFGHIKLNPQRSTVY',
                  "boundary AND sheet": 'DEFHIKLNQRSTVY',
                  "surface AND helix_start": 'DEHKPQR',
                  "surface AND helix": 'EHKQR',
                  "surface AND loop": 'DEGHKNPQRST',
                  "surface AND sheet": 'EHKNQRST',
                  "helix_cap": 'DNSTP'}
    return layer_dict