# Bundles
## `PointLightBundle`
```rust
pub struct PointLightBundle {
pub point_light: PointLight,
pub cubemap_visible_entities: CubemapVisibleEntities,
pub cubemap_frusta: CubemapFrusta,
pub transform: Transform,
pub global_transform: GlobalTransform,
/// Enables or disables the light
pub visibility: Visibility,
/// Inherited visibility of an entity.
pub inherited_visibility: InheritedVisibility,
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
pub view_visibility: ViewVisibility,
}
```
### Proposal 1 (Selected)
```rust
#[derive(Component)]
#[require(CubemapVisibleEntities, CubemapFrusta, Transform, Visibility)]
pub struct PointLight;
```
## `SpotLightBundle`
```rust
pub struct SpotLightBundle {
pub spot_light: SpotLight,
pub visible_entities: VisibleMeshEntities,
pub frustum: Frustum,
pub transform: Transform,
pub global_transform: GlobalTransform,
/// Enables or disables the light
pub visibility: Visibility,
/// Inherited visibility of an entity.
pub inherited_visibility: InheritedVisibility,
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
pub view_visibility: ViewVisibility,
}
```
### Proposal 1 (Selected)
```rust
#[derive(Component)]
#[require(VisibleMeshEntities, Frustum, Transform, Visibility)]
pub struct SpotLight;
```
## `DirectionalLightBundle`
```rust
pub struct DirectionalLightBundle {
pub directional_light: DirectionalLight,
pub frusta: CascadesFrusta,
pub cascades: Cascades,
pub cascade_shadow_config: CascadeShadowConfig,
pub visible_entities: CascadesVisibleEntities,
pub transform: Transform,
pub global_transform: GlobalTransform,
/// Enables or disables the light
pub visibility: Visibility,
/// Inherited visibility of an entity.
pub inherited_visibility: InheritedVisibility,
/// Algorithmically-computed indication of whether an entity is visible and should be extracted for rendering
pub view_visibility: ViewVisibility,
}
```
### Proposal 1 (Selected)
```rust
#[derive(Component)]
#[require(
CascadesVisibleEntities,
CascadesFrusta,
Cascades,
CascadeShadowConfig,
Transform,
Visibility
)]
pub struct DirectionalLight;
```