Despawn Location
A single despawn location: a block position (world name + integer block coords) owned by a player.
Deliberately server-independent and immutable — it holds a world name, not a live World, so it can be created, compared, indexed, and (de)serialised without a running server. That keeps the hot-path indexes cheap and makes the type fully unit-testable. Resolve to a live Location only when actually needed via toLocation.
Properties
The position component, without the owner — the LocationStore spatial key.
Per-target settings (on/off, priority, contraband opt-in) — the state behind the in-world toggle button. Defaulted so every existing call site is unchanged and a target that has never been configured costs nothing extra on disk.
Functions
Serialised form stored in each owner's file. A target with default options is written as x;y;z;world — byte-compatible with the original on-disk format — and one with non-default options is prefixed with @key=value,…|. See TargetOptions for why the options go in front rather than at the end.
Resolves to a Bukkit Location if the world is currently loaded, else null.