ENGINE_DECLARE_COMPONENT(Movement, {
  enum MovementTarget {
    MovementTarget_None,
    MovementTarget_Point,
    MovementTarget_LocalDirection,
    MovementTarget_WorldDirection,
    MovementTarget_Entity
  } target;
  union {
    alias_ecs_EntityHandle target_entity;
    alias_pga2d_Point target_point;
    alias_pga2d_Point target_direction;
  };

  alias_R movement_speed;
  bool done;
})

ENGINE_COMPONENT(Movement, .num_required_components = 1,
                 .required_components = (alias_ecs_ComponentHandle[]){alias_Physics2DBodyMotion_component()})