Combine service and importer structs into one

Every struct from definition.go is redefined in service package with almost fileds 1:1.

My proposition is to remove one of them (in importer) and use only one as we don’t need to keep both definitions.

What are the possible side effects of doing that?

One immediate side effect that I see is that existing mesg.yml will not be compatible especially for the declaration of the parameters (that is now a map and would change in an array).
Also some implication in the libraries that will probably need some updates on the way to handle the parameters.

Just an idea (probably too much): having a system service for the parsing could be nice like that we can always have a version of the system service for a version of the yml and we don’t really need to have a version system.

Yes there is a lot of redefinition but one is using map there other is using array.

One solution, if possible, will be to “trick” the yaml label in order to parse yaml map in the mesg.yml with the struct that use array.
It will be perfect if we could use something like:

type ServiceDefinition struct {
	Events []*Event `yaml:"events"`
}
type Event struct {
	Key string `yaml:"$key"`
	Name string `yaml:"name"`
}

I check the yaml lib we are using and it doesn’t seem to offer something like this.
Maybe there is more advanced/customizable lib?

The importation has been removed from the engine. The engine now receives a compiled version of the service and doesn’t handle yaml anymore.