Actually, Magento have a few articles about "Extension Best practices"
Programming Best Practices
Storefront UI best practices
Theme development best practices
Security, Performance, and Data Handling
The list may be quite long. I can try to add some general points:
Follow coding standards. We have autotests on git, which run tests on phpcs, ...
Yes, there is some point that we need to take care of during the development.
Do not use object manager (use constructor dependency instead).
Do not modify data in the observer.
Avoid to Use Around Plugin.
Do not use PHP variables like getting, POST, FILE, etc.
Set the proper soft & hard dependencies.
You can have a different configuration file for your entities only.
In the link you referenced there is a section that explains how to create the migration configuration for a custom entity: https://devdocs.magento.com/guides/v2.4/migration/extend-the-tool.html#create-a-custom-step
It says to create a section in the config.xml file that you are using, but ...
In the layout XML use your block name as element and check for destination element use below line as per needed to you
<move element="name.of.an.element" destination="name.of.destination.element" as="new_alias" after="name.of.element.after" before="name.of.element.before"/>
OpenMage is a community-driven Magento1-Fork. A drop-in replacement for M1 ... see https://www.openmage.org/magento-lts/about.html
It includes hundreds of bugfixes, performances and security updates beyond latest 18.104.22.168 release.
What are the main difference between magento 1.9 and OpenMage Magento-lts?
Most important ... it is activly maintained. ;)
First, you need to create i18n directory inside the module so the structure will be like below.
Now create .csv file for the locale in which you want to translate like fr_FR.csv
So your final translation file path is