Hosts can be sorted in various categories (e.g. a host running tasks, a host.create host, a spawn host, a virtual workstation, a Docker container parent, a Docker container). A lot of features are specific to a particular type of host (e.g. idle host termination only applies to hosts running tasks). However, the means to distinguish between the different host types is based on checking many different boolean fields to ensure that you've correctly filtered out the other host types for which the feature does not apply.
It would be easier to give the host a set of tags that can be used to identify what kind of host it is. That way, rather than check many booleans and other fields to filter out particular host types, you can just do set-like operations to filter the relevant hosts.