def __init__(
        self,
        *gates: type[cirq.Gate] | cirq.Gate | cirq.GateFamily,
        name: str | None = None,
        unroll_circuit_op: bool = True,
        preserve_moment_structure: bool = True,
        reorder_operations: bool = False,
    ):
        """Initializes CompilationTargetGateset.

        Args:
            *gates: A list of `cirq.Gate` subclasses / `cirq.Gate` instances /
                `cirq.GateFamily` instances to initialize the Gateset.
            name: (Optional) Name for the Gateset. Useful for description.
            unroll_circuit_op: If True, `cirq.CircuitOperation` is recursively
                validated by validating the underlying `cirq.Circuit`.
            preserve_moment_structure: Whether to preserve the moment structure of the
                circuit during compilation or not.
            reorder_operations: Whether to attempt to reorder the operations in order to reduce
                circuit depth or not (can be True only if preserve_moment_structure=False).
        Raises:
            ValueError: If both reorder_operations and preserve_moment_structure are True.
        """
        if reorder_operations and preserve_moment_structure:
            raise ValueError(
                'reorder_operations and preserve_moment_structure can not both be True'
            )
        super().__init__(*gates, name=name, unroll_circuit_op=unroll_circuit_op)
        self._preserve_moment_structure = preserve_moment_structure
        self._reorder_operations = reorder_operations
Initializes CompilationTargetGateset.

        Args:
            *gates: A list of `cirq.Gate` subclasses / `cirq.Gate` instances /
                `cirq.GateFamily` instances to initialize the Gateset.
            name: (Optional) Name for the Gateset. Useful for description.
            unroll_circuit_op: If True, `cirq.CircuitOperation` is recursively
                validated by validating the underlying `cirq.Circuit`.
            preserve_moment_structure: Whether to preserve the moment structure of the
                circuit during compilation or not.
            reorder_operations: Whether to attempt to reorder the operations in order to reduce
                circuit depth or not (can be True only if preserve_moment_structure=False).
        Raises:
            ValueError: If both reorder_operations and preserve_moment_structure are True.
        
cirq-core/cirq/transformers/target_gatesets/compilation_target_gateset.py