from typing import List
from typing import Final


def define_structure(project_name: str) -> List:
    """Create a known project structure using the given project name.

        ${PROJECT_NAME}
        |
        ├── cmake
        |   └── ...cmake
        |
        ├── include
        |   └── ${PROJECT_NAME}
        |       └── { }
        │           └── ...h
        |
        ├── source
        |   ├── main.cpp
        │   └── { }
        │       └── ...cpp
        |
        ├── tests
        |   ├── test.h
        │   └── { }
        │       └── ...cpp
        |
        └── ...
    """
    final_structure: Final[List] = [
        '.gitignore',
        '.clang-format',
        '.clang-tidy',
        '.cmake-format',
        'CMakeLists.txt',
        'README.md',
        f'include/{project_name}/utilities.h',
        f'include/{project_name}/core/class_name.h',
        'source/main.cc',
        'source/core/class_name.cc',
        'test/test.h',
    ]

    return final_structure