module Inspec::Schema::OutputSchema

def self.build_definitions(schema_type)

Build our definitions
def self.build_definitions(schema_type)
  {
    "definitions" => schema_type.all_depends.map { |t| [t.ref_name, t.body] }.to_h,
  }
end

def self.finalize(schema_type)

Helper function to automatically bundle a type with its dependencies
def self.finalize(schema_type)
  schema_type.body.merge(OutputSchema.build_definitions(schema_type))
end

def self.json(name, opts)

def self.json(name, opts)
  name += "-enhanced-outcomes" if opts["enhanced_outcomes"]
  if !LIST.key?(name)
    raise("Cannot find schema #{name.inspect}.")
  elsif LIST[name].is_a?(Proc)
    v = LIST[name].call
  else
    v = LIST[name]
  end
  JSON.dump(v)
end

def self.names

def self.names
  LIST.keys
end