---
# System prepended metadata

title: Core Components
tags: [Required-Components]

---

# Bundles

## `TransformBundle`

```rust
pub struct TransformBundle {
    /// The transform of the entity.
    pub local: Transform,
    /// The global transform of the entity.
    pub global: GlobalTransform,
}
```

### Proposal 1 (Selected)

```rust
#[derive(Component)]
#[require(GlobalTransform)]
struct Transform;
```

## `VisibilityBundle`

```rust
pub struct VisibilityBundle {
    /// The visibility of the entity.
    pub visibility: Visibility,
    // The inherited visibility of the entity.
    pub inherited_visibility: InheritedVisibility,
    // The computed visibility of the entity.
    pub view_visibility: ViewVisibility,
}
```

### Proposal 1 (Selected)

```rust
#[derive(Component)]
#[require(InheritedVisibility, ViewVisibility)]
struct Visibility;
```

## `SpatialBundle`

```rust
pub struct SpatialBundle {
    /// The visibility of the entity.
    pub visibility: Visibility,
    /// The inherited visibility of the entity.
    pub inherited_visibility: InheritedVisibility,
    /// The view visibility of the entity.
    pub view_visibility: ViewVisibility,
    /// The transform of the entity.
    pub transform: Transform,
    /// The global transform of the entity.
    pub global_transform: GlobalTransform,
}
```

### Proposal 1

Remove SpatialBundle