get_id(); // Validate experiment ID is not empty. if ( empty( $id ) ) { return false; } if ( $this->has_experiment( $id ) ) { return false; } $this->experiments[ $id ] = $experiment; return true; } /** * Gets an experiment by ID. * * @since 0.1.0 * * @param string $id Experiment identifier. * @return \WordPress\AI\Contracts\Experiment|null Experiment instance or null if not found. */ public function get_experiment( string $id ): ?Experiment { return $this->experiments[ $id ] ?? null; } /** * Gets all registered experiments. * * @since 0.1.0 * * @return \WordPress\AI\Contracts\Experiment[] Array of experiment instances keyed by experiment ID. */ public function get_all_experiments(): array { return $this->experiments; } /** * Checks if an experiment is registered. * * @since 0.1.0 * * @param string $id Experiment identifier. * @return bool True if registered, false otherwise. */ public function has_experiment( string $id ): bool { return isset( $this->experiments[ $id ] ); } }