ServerEvents.recipes(event => {
  event.custom({  //Universal press primary recipe
    type: 'minecraft:crafting_shaped',
    pattern: [
      'ADA',
      'CBC',
      'EFE'
    ],
    key: {
      A: { item: 'ae2:engineering_processor_press' },
      B: { tag: 'c:netherite_ingots' },
      C: { item: 'ae2:calculation_processor_press' },
      D: { item: 'megacells:accumulation_processor_press' },
      E: { item: 'ae2:logic_processor_press' },
      F: { item: 'ae2:silicon_press' }
    },
    result: {
      id: 'kubejs:universal_press',
      count: 1
    }
  });
  
  // NOTE: no inscriber recipe that outputs kubejs:universal_press from a
  // universal_press in the press (top) slot — AE2 press slots are catalysts
  // that are not consumed, so such a recipe would duplicate the press for one
  // iron block each cycle. The press is obtainable only via the primary
  // crafting recipe above.

  event.custom({  //engineering print recipe
    type: 'ae2:inscriber',
    ingredients: {
      middle: {
        tag: 'c:diamonds'
      },
      top: {
        item: 'kubejs:universal_press' 
      }
    },
    mode: 'inscribe',
    result: {
      id: 'ae2:printed_engineering_processor'
    }
  });

  event.custom({  //logic print recipe
    type: 'ae2:inscriber',
    ingredients: {
      middle: {
        tag: 'c:gold_ingots'
      },
      top: {
        item: 'kubejs:universal_press'
      }
    },
    mode: 'inscribe',
    result: {
      id: 'ae2:printed_logic_processor'
    }
  });

  event.custom({  //calculation print recipe
    type: 'ae2:inscriber',
    ingredients: {
      middle: {
        item: 'ae2:certus_quartz_crystal'
      },
      top: {
        item: 'kubejs:universal_press'
      }
    },
    mode: 'inscribe',
    result: {
      id: 'ae2:printed_calculation_processor'
    }
  });

  event.custom({  //silicon print recipe
    type: 'ae2:inscriber',
    ingredients: {
      middle: {
        tag: 'c:silicon'
      },
      top: {
        item: 'kubejs:universal_press'
      }
    },
    mode: 'inscribe',
    result: {
      id: 'ae2:printed_silicon'
    }
  });

  event.custom({  //accumulation print recipe
    type: 'ae2:inscriber',
    ingredients: {
      middle: {
        tag: 'c:sky_steel_ingots'
      },
      top: {
        item: 'kubejs:universal_press'
      }
    },
    mode: 'inscribe',
    result: {
      id: 'megacells:printed_accumulation_processor'
    }
  });
});
