Stable identity facts for a fenced lease.
@type t() :: %GroundPlane.Contracts.Fence.Identity{ holder: String.t(), lease_id: String.t(), resource: String.t() }
@spec new(map() | keyword()) :: {:ok, t()} | {:error, term()}
@spec to_map(t()) :: map()