# 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`.