fromJson_Gate_Circuit = (props, context) => {
    let circuit = fromJson_CircuitDefinition(props.circuit, context).withMinimumWireCount();
    return setGateBuilderEffectToCircuit(new GateBuilder(), circuit).
        setSerializedId(props.id).
        setSymbol(props.symbol).
        setTitle(props.name).
        setDrawer(circuitDrawer).
        gate;
}
@param {!{id: !String, matrix: *, circuit: *, symbol: *, name: *, param: *}} props
@param {undefined|!CustomGateSet} context
@returns {!Gate}