protected sealed override void PrepareProtoItem()
        {
            if (IsClient)
            {
                return;
            }

            var candidates = new ItemDataLogList();

            this.PrepareDataLogCandidates(candidates);
            this.dataLogCandidates = candidates.Freeze();
            if (this.dataLogCandidates.Count == 0)
            {
                throw new Exception(
                          $"No data logs provided during {nameof(this.PrepareDataLogCandidates)} method call for {this}");
            }
        }
 protected abstract void PrepareDataLogCandidates(ItemDataLogList candidates);