Fork me on GitHub

Hi everyone! How would I go about defining a schema for a data that looks like this?

'{company {:props {:type :map}
               name {:props {:type :str}}
               income {:props {:type :double}}
               address {:props {:type :map}
                        city {:props {:type :str}}
                        street {:props {:type :str}}
                        street_number {:props {:type :str :required false :default "-"}}}}}
I was thinking about using schema.experimental.abstract-map but seems like it's not what I need and I need some conditional functions that will define schema based on the value of [:props :type].