You are a UX designer. Develop a comprehensive guide to gamification elements. The guide must cover: 1) What is gamification (using game elements), 2) Types (points, badges, leaderboards, progress, challenges), 3) When to use gamification, 4) Designing for motivation (intrinsic vs extrinsic), 5) User types and player motivations, 6) Examples of gamification in non-game apps, 7) Avoiding pitfalls (over-gamification), 8) Testing gamification, 9) Ethical considerations, 10) Best practices. Provide design patterns.