mergeSchemas(mixinSchema, svcSchema) {
		const res = _.cloneDeep(mixinSchema);
		if (!svcSchema) return res;
		const mods = _.cloneDeep(svcSchema);
		if (!mixinSchema) return mods;

		Object.keys(mods).forEach(key => {
			if ((key === "name" || key === "version") && mods[key] !== undefined) {
				// Simple overwrite
				res[key] = mods[key];
			} else if (key === "settings") {
				// Merge with defaultsDeep
				res[key] = this.mergeSchemaSettings(mods[key], res[key]);
			} else if (key === "metadata") {
				// Merge with defaultsDeep
				res[key] = this.mergeSchemaMetadata(mods[key], res[key]);
			} else if (key === "hooks") {
				// Merge & concat
				res[key] = this.mergeSchemaHooks(mods[key], res[key] || {});
			} else if (key === "actions") {
				// Merge with defaultsDeep
				res[key] = this.mergeSchemaActions(mods[key], res[key] || {});
			} else if (key === "methods") {
				// Overwrite
				res[key] = this.mergeSchemaMethods(mods[key], res[key]);
			} else if (key === "events") {
				// Merge & concat by groups
				res[key] = this.mergeSchemaEvents(mods[key], res[key] || {});
			} else if (["merged", "created", "started", "stopped"].indexOf(key) !== -1) {
				// Concat lifecycle event handlers
				res[key] = this.mergeSchemaLifecycleHandlers(mods[key], res[key]);
			} else if (key === "mixins") {
				// Concat mixins
				res[key] = this.mergeSchemaUniqArray(mods[key], res[key]);
			} else if (key === "dependencies") {
				// Concat mixins
				res[key] = this.mergeSchemaUniqArray(mods[key], res[key]);
			} else {
				const customFnName = "mergeSchema" + key.replace(/./, key[0].toUpperCase()); // capitalize first letter
				// TODO: add middleware hook
				if (isFunction(this[customFnName])) {
					res[key] = this[customFnName](mods[key], res[key]);
				} else {
					res[key] = this.mergeSchemaUnknown(mods[key], res[key]);
				}
			}
		});

		return res;
	}
Merge two Service schema

@param {Object} mixinSchema		Mixin schema
@param {Object} svcSchema 		Service schema
@returns {Object} Mixed schema

@memberof Service