private bool ValidatePlace(IList <string> errors, bool testPermissions)
        {
            var player = MyAPIGateway.Players.GetPlayerControllingEntity(Holder);

            if (player == null)
            {
                return(false);
            }

            if (!TargetIsStatic || PlacedDefinition == null)
            {
                errors?.Add("Can't place node on dynamic physics");
                return(false);
            }

            var vert = CreateVertex(Target.Position);

            if (testPermissions)
            {
                if (!player.HasPermission(vert.Position, MyPermissionsConstants.Build))
                {
                    errors?.Add("You cannot build here");
                    return(false);
                }

                foreach (var t in _vertices)
                {
                    if (!player.HasPermission(t.Position, MyPermissionsConstants.Build))
                    {
                        errors?.Add("You cannot build here");
                        return(false);
                    }
                }
            }

            if (_vertices.Count == 0)
            {
                return(true);
            }
            using (new TemporaryVertex(this))
            {
                return(EdgePlacerSystem.ValidatePath(PlacedDefinition, Graph, _vertices, errors));
            }
        }