Implement shared combat-rule systems such as throws, cancels, combo logic, and simultaneous-action ordering.
Implement source-accurate defense, parry, pushblock, and throw-vs-defense behavior.
Port Ninja move, state, and owned-object behavior from source to the Python runtime.
Implement hurtbox, hurt-state, collision, and bounds parity for the shared runtime.
Align env/training surfaces with runtime truth and lock down parity signoff artifacts.
Best practices and guidance for developing PufferLib reinforcement learning environments. Use when creating RL environments, implementing observation/action spaces, setting up vectorization, training policies, or integrating with PufferLib's API.