To conclude

Even when you don’t need to support different themes (yet), it is a good idea to use the power of ThemeExtension from the start. If in a later stage you find out that you do need to support different screen resolutions, different brands and/or different color themes, it is much less work to add new theme information and you don’t have to make changes to how the theme is applied.

The possibilities of theme extensions are limitless. You can practically store anything in them and extend your theme any way you like.

You can find the complete source on Github.