Modelling IaC files

How can we model IaC files across repos

The core of this whole endeavour is the model of the IaC files.

So far we have got to the point of parsing all repos from a user and read them with TOML and YAML deserialisers, but the point is not to merely deserialise into an equally complex form, but to bind them with parameter values which can then we shared across repos.

Part of the purpose of this is to stop handling per-repo and to work across repos. This necessarily warrants a shift to a symbolic form (i.e. variables), and then anti-unification to find the minimal distinctions to produce the observed instances of config.

This would in theory let us come up with simpler forms that capture only what differs, as well as to capture variables that are somehow discernable from the repo metadata itself within a template (typically package names that are the repo name with a kebab-case to snake_case transform).