# RNA APIs for `Action` and `AnimData`
:::warning
This is a draft, real thing is at [#124399: RNA APIs for Action and AnimData](https://projects.blender.org/blender/blender/issues/124399)
:::
This is a sketch of what the RNA APIs are like, for assigning and managing actions and slots.
| Symbol | Meaning |
|-|-|
| ⭕ | Not yet done, needs work. |
| ❌ | Temporary one, needs removing when no longer necessary. |
## `Action`
`action.last_slot_handle`
: Read-only getter for the last-used slot handle.
`action.slots`
: Collection of type `ActionSlots` that gives access to all the Action's slots. Keyed by `slot.name`.
`action.slots.new(name)`
: Creates & returns a new slot with the given name, which is potentially altered to be unique within the Action.
`action.slots.remove(slot)` ⭕
: not yet implemented!
## `AnimData`
`id.animation_data.action`
: Reference to the assigned Action
`id.animation_data.action_slot_handle`
: Ground truth of which slot is assigned. Only semantically valid when an Action is assigned. Writable only when an Action is assigned.
`id.animation_data.action_slot_name`
: Name of the last-assigned slot. Is used to auto-assign a slot when an Action is assigned. Writable.
`id.animation_data.action_slot_enum` ❌
: Enum that exposes the names of slots that are compatible with `id`'s type.
`id.animation_data.action_slot`
: Reference to the assigned slot. Uses `….action_slot_handle` to look up the slot in `….action`.
`id.animation_data.action_slots`
: Collection property of a sub-set of the slots in the assigned Action. Only those slots that are compatible with `id`'s type are contained here.