Consider generalizing constriction of available parameters
There are a lot of parameters (like architectures, trees, components, and so on) applied to each type of object in kpet-db, restricting the available set. All of these are done with custom code, which leads to bugs and maintenance costs.
E.g. trees are restricting which architectures they're available on, same with domains, and then host types are restricting which trees, architectures and components they're available for, and which domains they belong to. This is just a sample, and it's getting complicated.
Consider resolving all those restrictions in a generalized and automatic way, so that we can make sure all dependencies and restrictions are always resolved and reduce the codebase size.
This will require coming up with a suitable abstraction, and it's not yet clear what it will be and how to do that.