mediate( subject, target, options, secondTarget = null ) {

		// Mediate each subject properties to material
		for ( const subjectProperty in this._definition ) {
			const mediationDefinition = this._definition[subjectProperty];

			if ( options[subjectProperty] !== undefined ) {

				// retrieve the mediation transformer to use for this property
				const mediationTransformer = mediationDefinition.t ? mediationDefinition.t : directTransfer;
				mediationTransformer( target, mediationDefinition.m, options[subjectProperty] );

				// Also transfert to second target is isset
				if( secondTarget ) {

					mediationTransformer( secondTarget, mediationDefinition.m, options[subjectProperty] );

				}

			}

		}

	}
@param {MeshUIBaseElement} subject
@param {any} target
@param {Object.<(string|number), any>} options
@param {any} [secondTarget=null]