user: Describe Screen Context from the Blender manual or Python API, including usage steps and snippets.

assistant: bpy.context.scene
:   Type:
    :   [`bpy.types.Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")

bpy.context.view_layer
:   Type:
    :   [`bpy.types.ViewLayer`](bpy.types.ViewLayer.html#bpy.types.ViewLayer "bpy.types.ViewLayer")

bpy.context.visible_objects
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.selectable_objects
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.selected_objects
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.editable_objects
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.selected_editable_objects
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.objects_in_mode
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.objects_in_mode_unique_data
:   Type:
    :   sequence of [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.visible_bones
:   Type:
    :   sequence of [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")

bpy.context.editable_bones
:   Type:
    :   sequence of [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")

bpy.context.selected_bones
:   Type:
    :   sequence of [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")

bpy.context.selected_editable_bones
:   Type:
    :   sequence of [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone")

bpy.context.visible_pose_bones
:   Type:
    :   sequence of [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")

bpy.context.selected_pose_bones
:   Type:
    :   sequence of [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")

bpy.context.selected_pose_bones_from_active_object
:   Type:
    :   sequence of [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")

bpy.context.active_bone
:   Type:
    :   [`bpy.types.EditBone`](bpy.types.EditBone.html#bpy.types.EditBone "bpy.types.EditBone") or [`bpy.types.Bone`](bpy.types.Bone.html#bpy.types.Bone "bpy.types.Bone")

bpy.context.active_pose_bone
:   Type:
    :   [`bpy.types.PoseBone`](bpy.types.PoseBone.html#bpy.types.PoseBone "bpy.types.PoseBone")

bpy.context.active_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.edit_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.sculpt_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.vertex_paint_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.weight_paint_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.image_paint_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.particle_edit_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.pose_object
:   Type:
    :   [`bpy.types.Object`](bpy.types.Object.html#bpy.types.Object "bpy.types.Object")

bpy.context.active_nla_track
:   Type:
    :   [`bpy.types.NlaTrack`](bpy.types.NlaTrack.html#bpy.types.NlaTrack "bpy.types.NlaTrack")

bpy.context.active_nla_strip
:   Type:
    :   [`bpy.types.NlaStrip`](bpy.types.NlaStrip.html#bpy.types.NlaStrip "bpy.types.NlaStrip")

bpy.context.selected_nla_strips
:   Type:
    :   sequence of [`bpy.types.NlaStrip`](bpy.types.NlaStrip.html#bpy.types.NlaStrip "bpy.types.NlaStrip")

bpy.context.selected_movieclip_tracks
:   Type:
    :   sequence of [`bpy.types.MovieTrackingTrack`](bpy.types.MovieTrackingTrack.html#bpy.types.MovieTrackingTrack "bpy.types.MovieTrackingTrack")

bpy.context.annotation_data
:   Type:
    :   [`bpy.types.GreasePencil`](bpy.types.GreasePencil.html#bpy.types.GreasePencil "bpy.types.GreasePencil")

bpy.context.annotation_data_owner
:   Type:
    :   [`bpy.types.ID`](bpy.types.ID.html#bpy.types.ID "bpy.types.ID")

bpy.context.active_annotation_layer
:   Type:
    :   `bpy.types.GPencilLayer`

bpy.context.grease_pencil
:   Type:
    :   [`bpy.types.GreasePencil`](bpy.types.GreasePencil.html#bpy.types.GreasePencil "bpy.types.GreasePencil")

bpy.context.active_operator
:   Type:
    :   [`bpy.types.Operator`](bpy.types.Operator.html#bpy.types.Operator "bpy.types.Operator")

bpy.context.active_action
:   Type:
    :   [`bpy.types.Action`](bpy.types.Action.html#bpy.types.Action "bpy.types.Action")

bpy.context.selected_visible_actions
:   Type:
    :   sequence of [`bpy.types.Action`](bpy.types.Action.html#bpy.types.Action "bpy.types.Action")

bpy.context.selected_editable_actions
:   Type:
    :   sequence of [`bpy.types.Action`](bpy.types.Action.html#bpy.types.Action "bpy.types.Action")

bpy.context.visible_fcurves
:   Type:
    :   sequence of [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")

bpy.context.editable_fcurves
:   Type:
    :   sequence of [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")

bpy.context.selected_visible_fcurves
:   Type:
    :   sequence of [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")

bpy.context.selected_editable_fcurves
:   Type:
    :   sequence of [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")

bpy.context.active_editable_fcurve
:   Type:
    :   [`bpy.types.FCurve`](bpy.types.FCurve.html#bpy.types.FCurve "bpy.types.FCurve")

bpy.context.selected_editable_keyframes
:   Type:
    :   sequence of [`bpy.types.Keyframe`](bpy.types.Keyframe.html#bpy.types.Keyframe "bpy.types.Keyframe")

bpy.context.ui_list
:   Type:
    :   [`bpy.types.UIList`](bpy.types.UIList.html#bpy.types.UIList "bpy.types.UIList")

bpy.context.property
:   Type:
    :   [`bpy.types.AnyType`](bpy.types.AnyType.html#bpy.types.AnyType "bpy.types.AnyType") or `str` or `int`

    Get the property associated with a hovered button.
    Returns a tuple of the data-block, data path to the property, and array index.

    ```
    # Example inserting keyframe for the hovered property.
    active_property = bpy.context.property
    if active_property:
        datablock, data_path, index = active_property
        datablock.keyframe_insert(data_path=data_path, index=index, frame=1)
    ```

bpy.context.asset_library_reference
:   Type:
    :   [`bpy.types.AssetLibraryReference`](bpy.types.AssetLibraryReference.html#bpy.types.AssetLibraryReference "bpy.types.AssetLibraryReference")

bpy.context.active_strip
:   Type:
    :   [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")

bpy.context.strips
:   Type:
    :   sequence of [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")

bpy.context.selected_strips
:   Type:
    :   sequence of [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")

bpy.context.selected_editable_strips
:   Type:
    :   sequence of [`bpy.types.Strip`](bpy.types.Strip.html#bpy.types.Strip "bpy.types.Strip")

bpy.context.sequencer_scene
:   Type:
    :   [`bpy.types.Scene`](bpy.types.Scene.html#bpy.types.Scene "bpy.types.Scene")