public JSchemaWriter(JsonWriter writer, JSchemaWriterSettings settings)
        {
            ValidationUtils.ArgumentNotNull(writer, nameof(writer));

            _writer       = writer;
            _knownSchemas = new KnownSchemaCollection();

            if (settings != null)
            {
                _externalSchemas   = settings.ExternalSchemas;
                _referenceHandling = settings.ReferenceHandling;
            }

            if (_referenceHandling != JSchemaWriterReferenceHandling.Always)
            {
                _schemaStack = new List <JSchema>();
            }
        }