Here's a reproduction of the issue:
builder_1 = genson.SchemaBuilder()
builder_1.add_object({"a": 0})
builder_1.add_object({"b": 0})
# Make a copy of builder_1.
builder_2 = genson.SchemaBuilder()
builder_2.add_schema(builder_1)
# This passes.
assert builder_1.to_schema() == builder_2.to_schema()
another_schema = {
'$schema': 'http://json-schema.org/schema#',
'properties': dict(c={'type': 'integer'}),
'required': ['c'],
'type': 'object'
}
builder_1.add_schema(another_schema)
builder_2.add_schema(another_schema)
# This fails, builder_2 marks 'c' as required.
assert builder_1.to_schema() == builder_2.to_schema()