This repository and (more importantly), its commit history illustrates the steps necessary to convert a Blender add-on from being a single-file Python script into a multi-file add-on in a basic folder structure.
The original add-on code was provided by Blender itself, shipped as a Python template. From Blender 3.4, that add-on is available by going to the Text Editor and navigating to Templates > Python > Addon Add Object.
A more detailed description of this process can be found on the Orange Turbine blog.