# Bundles
## `ReflectionProbeBundle`
```rust
pub struct ReflectionProbeBundle {
/// Contains a transform that specifies the position of this reflection probe in space.
pub spatial: SpatialBundle,
/// Marks this environment map as a light probe.
pub light_probe: LightProbe,
/// The cubemaps that make up this environment map.
pub environment_map: EnvironmentMapLight,
}
```
### Proposal 1
```rust
#[derive(Component)]
#[require(LightProbe, Transform, Visibility)]
struct EnvironmentMapLight;
```
* EnvironmentMapLight is not always a light probe (ex: when it is on a Camera) so this will not work
### Proposal 2
```rust
#[derive(Component)]
#[require(Transform, Visibility)]
struct LightProbe;
```
For now, I think we need EnvironmentMapLight to be a "standalone non-driver component". We _could_ define a new `ReflectionProbe` component that requires both LightProbe and EnvironmentMapLight, but I think we should be conservative for now and reconsider the relationships between these components later. In practice this means that you need to spawn _both_ a `LightProbe` _and_ a `EnvironmentMapLight`.