# Leaf Design Log ## 2026-08-10 ### Initial protection design - Leaf is available to any player who opts in; the seven-day period applies only to onboarding reminders. - Protection grants Resistance I by default and remains active until the player opts out, attacks another player, an administrator disables it for the player, or Leaf is globally disabled. - Receiving an attack does not remove protection, but retaliating does, including attributable Thorns damage. - PvP attribution covers melee, projectiles, potions, owned animals, Thorns, and indirect damage when Spigot exposes a reliable responsible player. - Opted-in players receive a leaf prefix in tab, overhead names, and chat where supported. - New players receive an onboarding reminder on every login for seven calendar days after first joining. - Global disablement suppresses effects, prefixes, and reminders without erasing player choices. - Administration uses the permission-aware `/leaf` command tree with autocomplete. - Builds and releases follow the neighboring Spigot Base Gradle and Gitea pipeline. - The design bundle is committed together; later implementation work is committed separately for each user story. ### Implementation started - Established the Java 17 Gradle project, strict compilation, JUnit test lifecycle, Leaf plugin metadata, Gradle wrapper, and Gitea CI and semantic-release workflows. - Verified the initial pipeline with `./gradlew clean check jar` and produced `build/libs/leaf-0.1.0-SNAPSHOT.jar`. - US-007 remains in progress until the story-by-story implementation commit requirement has been verified.