{"version":3,"sources":["../src/bambu.ts","../src/printerResponse.ts","../src/commandSchemas.ts","../src/commands.ts","../src/errors.ts","../src/amsUtils.ts","../src/filamentProfiles.ts"],"names":["PrinterModelNamesShort","PrinterModelIDs","AMSControlAction","PrintStage","SpeedLevel","FilamentType","AmsRFIDStatus","UpgradeStatusProgressState","UpgradeStatusFinishState","UpgradeErrorCode","UpgradeDisplayState","z","LightEffect","LightNode","CameraOperation","FanType","HMSMessageLevel","ErrorCategory","AmsStatusMain","FilamentStep","FilamentOperation"],"mappings":"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","file":"index.cjs","sourcesContent":["export type {\n  NumberRange,\n  LightReport,\n  PushAllResponse,\n  StringNumberRange,\n  SpeedLevel,\n  ExternalTray,\n  AMSTray,\n  AMS,\n  StringBoolean,\n  StringNumber,\n  PrintStage,\n  PrintStageInfo,\n  EnrichedStageInfo,\n  PrintStageDetails,\n  FilamentType,\n  getStageFromCurr,\n  getStagesFromArray,\n  getEnrichedStages,\n  stageCurrToStage,\n} from \"./printerResponse\";\n\n// Re-export BambuClientPrinterStatus from bambu-node for now (need to check if this needs to be moved)\nexport type BambuClientPrinterStatus = \"FINISH\" | \"FAILED\" | \"RUNNING\" | \"IDLE\" | \"PAUSE\" | \"PREPARE\" | \"SLICING\" | \"OFFLINE\";\n\nexport enum PrinterModelNamesShort {\n  X1C = \"X1C\",\n  X1 = \"X1\",\n  X1E = \"X1E\",\n  P1P = \"P1P\",\n  P1S = \"P1S\",\n  A1 = \"A1\",\n  A1M = \"A1M\",\n  H2D = \"H2D\",\n}\n\nexport enum PrinterModelIDs {\n  X1C = \"BL-P001\",\n  X1 = \"BL-P002\",\n  P1P = \"C11\",\n  P1S = \"C12\",\n  X1E = \"C13\",\n  A1 = \"N2S\",\n  A1M = \"N1\",\n  H2D = \"O1D\"\n}\n\n/**\n * Mapping of printer model IDs to their friendly model names\n * This includes:\n * - Official model IDs from machine profiles (BL-P001, C11, etc.)\n * - Full names (from project_settings.config)\n */\nexport const PRINTER_MODEL_MAP: Record<PrinterModelIDs, string> = {\n  // Official model IDs from machine profiles\n  [PrinterModelIDs.X1C]: \"X1C\", // X1 Carbon\n  [PrinterModelIDs.X1]: \"X1\", // X1\n  [PrinterModelIDs.P1P]: \"P1P\", // P1P\n  [PrinterModelIDs.P1S]: \"P1S\", // P1S\n  [PrinterModelIDs.X1E]: \"X1E\", // X1E\n  [PrinterModelIDs.A1]: \"A1\", // A1\n  [PrinterModelIDs.A1M]: \"A1M\", // A1 Mini\n  [PrinterModelIDs.H2D]: \"H2D\", // H2D\n};\n\n/**\n * Mapping of printer model IDs to their full names\n * This includes:\n * - Official model IDs from machine profiles (BL-P001, C11, etc.)\n * - Full names (from project_settings.config)\n */\nexport const PRINTER_MODEL_LONG_NAME_MAP: Record<\n  PrinterModelIDs,\n  PrinterLongNames\n> = {\n  // Full names (for project_settings.config)\n  [PrinterModelIDs.X1C]: \"Bambu Lab X1C\",\n  [PrinterModelIDs.X1]: \"Bambu Lab X1\",\n  [PrinterModelIDs.P1S]: \"Bambu Lab P1S\",\n  [PrinterModelIDs.P1P]: \"Bambu Lab P1P\",\n  [PrinterModelIDs.A1]: \"Bambu Lab A1\",\n  [PrinterModelIDs.A1M]: \"Bambu Lab A1 Mini\",\n  [PrinterModelIDs.X1E]: \"Bambu Lab X1C\",\n  [PrinterModelIDs.H2D]: \"Bambu Lab H2D\", // H2D\n};\n\nexport const CONNECT_RETURN_CODE_DESC = {\n  0: \"Connection successful\",\n  1: \"Connection refused - incorrect protocol version\",\n  2: \"Connection refused - invalid client identifier\",\n  3: \"Connection refused - server unavailable\",\n  4: \"Connection refused - bad username or password\",\n  5: \"Connection refused - not authorised\",\n};\n\nexport type PrinterLongNames =\n  | \"Bambu Lab X1C\"\n  | \"Bambu Lab X1\"\n  | \"Bambu Lab P1S\"\n  | \"Bambu Lab P1P\"\n  | \"Bambu Lab A1\"\n  | \"Bambu Lab A1 Mini\"\n  | \"Bambu Lab H2D\";\n\nexport type AMS_PREFIX = \"A\" | \"B\" | \"C\" | \"D\";\n\nexport const AMS_LETTER_MAP: Record<string, AMS_PREFIX> = {\n  \"0\": \"A\",\n  \"1\": \"B\",\n  \"2\": \"C\",\n  \"3\": \"D\",\n};\n","// Type definitions moved from @hiv3d/bambu-node\n// This file contains types that were previously in bambu-node but moved to bambu-types\n// to reduce dependencies between packages\n\nexport type StringNumber = `${number}`\nexport type StringBoolean = `${boolean}`\n\nexport type NumberRange<\n  start extends number,\n  end extends number,\n  arr extends unknown[] = [],\n  acc extends number = never,\n> = arr[\"length\"] extends end\n  ? acc | start | end\n  : NumberRange<\n      start,\n      end,\n      [...arr, 1],\n      arr[start] extends undefined ? acc : acc | arr[\"length\"]\n    >\n\nexport type StringNumberRange<F extends number, T extends number> = `${NumberRange<F, T>}`\n\n/**\n * Valid AMS control actions\n */\nexport enum AMSControlAction {\n  RESUME = \"resume\",\n  RESET = \"reset\",\n  PAUSE = \"pause\",\n  DONE = \"done\"\n}\n\nexport type State = \"pause\" | \"resume\" | \"stop\"\n\nexport type PrintMessageCommands =\n  | \"push_status\"\n  | \"ams_control\"\n  | State\n  | \"gcode_line\"\n  | \"gcode_file\"\n  | \"project_file\"\n\nexport type PrintMessageCommand = {\n  command: PrintMessageCommands\n  param?: string\n  sequence_id: string\n}\n\nexport interface PrintMessage {\n  print: PrintMessageCommand\n}\n\nexport function isPrintMessage(data: any): data is PrintMessage {\n  return (\n    !!data?.print &&\n    !!data?.print?.command &&\n    [\"push_status\", \"resume\", \"gcode_line\", \"gcode_file\", \"project_file\", \"ams_filament_setting\"].includes(\n      data.print.command\n    )\n  )\n}\n\nexport type PrinterStatus =\n  | \"FINISH\"\n  | \"FAILED\"\n  | \"RUNNING\"\n  | \"IDLE\"\n  | \"PAUSE\"\n  | \"PREPARE\"\n  | \"SLICING\"\n\n/**\n * Every stage of a print.\n * Extracted from https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp\n */\nexport enum PrintStage {\n  \"PRINTING\" = \"Printing\",\n  \"BED_LEVELING\" = \"Auto bed leveling\",\n  \"HEATBED_PREHEATING\" = \"Heatbed preheating\",\n  \"XY_MECH_MODE_SWEEP\" = \"Sweeping XY mech mode\",\n  \"CHANGE_MATERIAL\" = \"Changing filament\",\n  \"M400_PAUSE\" = \"M400 pause\",\n  \"FILAMENT_RUNOUT_PAUSE\" = \"Paused due to filament runout\",\n  \"HOTEND_HEATING\" = \"Heating hotend\",\n  \"EXTRUDE_COMPENSATION_SCAN\" = \"Calibrating extrusion\",\n  \"BED_SCAN\" = \"Scanning bed surface\",\n  \"FIRST_LAYER_SCAN\" = \"Inspecting first layer\",\n  \"BE_SURFACE_TYPT_IDENTIFICATION\" = \"Identifying build plate type\",\n  \"SCANNER_EXTRINSIC_PARA_CALI\" = \"Calibrating Micro Lidar\",\n  \"TOOLHEAD_HOMING\" = \"Homing toolhead\",\n  \"NOZZLE_TIP_CLEANING\" = \"Cleaning nozzle tip\",\n  \"EXTRUDER_TEMP_PROTECT_CALI\" = \"Checking extruder temperature\",\n  \"USER_PAUSE\" = \"Printing was paused by the user\",\n  \"TOOLHEAD_SHELL_OFF_PAUSE\" = \"Pause of front cover falling\",\n  \"SCANNER_LASER_PARA_CALI\" = \"Calibrating the micro lida\",\n  \"EXTRUDER_ABSOLUTE_FLOW_CALI\" = \"Calibrating extrusion flow\",\n  \"HOTEND_TEMPERATURE_ERROR_PAUSE\" = \"Paused due to nozzle temperature malfunction\",\n  \"HEATED_BED_TEMPERATURE_ERROR_PAUSE\" = \"Paused due to heat bed temperature malfunction\",\n  \"FILAMENT_UNLOADING\" = \"Filament unloading\",\n  \"SKIP_STEP_PAUSE\" = \"Skip step pause\",\n  \"FILAMENT_LOADING\" = \"Filament loading\",\n  \"MOTOR_NOISE_CALIBRATION\" = \"Motor noise calibration\",\n  \"AMS_LOST_PAUSE\" = \"Paused due to AMS lost\",\n  \"HEAT_BREAK_FAN_PAUSE\" = \"Paused due to low speed of the heat break fan\",\n  \"CHAMBER_TEMPERATURE_CONTROL_ERROR_PAUSE\" = \"Paused due to chamber temperature control error\",\n  \"CHAMBER_COOLING\" = \"Cooling chamber\",\n  \"USER_INSERT_GCODE_PAUSE\" = \"Paused by the Gcode inserted by user\",\n  \"MOTOR_NOISE_SHOWOFF\" = \"Motor noise showoff\",\n  \"NOZZLE_FILAMENT_COVERED_DETECTED_PAUSE\" = \"Nozzle filament covered detected pause\",\n  \"CUTTER_ERROR_PAUSE\" = \"Cutter error pause\",\n  \"FIRST_LAYER_ERROR_PAUSE\" = \"First layer error pause\",\n  \"NOZZLE_CLOG_PAUSE\" = \"Nozzle clog pause\"\n}\n\n/**\n * Maps numeric stage_curr values to PrintStage enum values\n */\nexport const stageCurrToStage: Record<number, PrintStage> = {\n  0: PrintStage.PRINTING,\n  1: PrintStage.BED_LEVELING,\n  2: PrintStage.HEATBED_PREHEATING,\n  3: PrintStage.XY_MECH_MODE_SWEEP,\n  4: PrintStage.CHANGE_MATERIAL,\n  5: PrintStage.M400_PAUSE,\n  6: PrintStage.FILAMENT_RUNOUT_PAUSE,\n  7: PrintStage.HOTEND_HEATING,\n  8: PrintStage.EXTRUDE_COMPENSATION_SCAN,\n  9: PrintStage.BED_SCAN,\n  10: PrintStage.FIRST_LAYER_SCAN,\n  11: PrintStage.BE_SURFACE_TYPT_IDENTIFICATION,\n  12: PrintStage.SCANNER_EXTRINSIC_PARA_CALI,\n  13: PrintStage.TOOLHEAD_HOMING,\n  14: PrintStage.NOZZLE_TIP_CLEANING,\n  15: PrintStage.EXTRUDER_TEMP_PROTECT_CALI,\n  16: PrintStage.USER_PAUSE,\n  17: PrintStage.TOOLHEAD_SHELL_OFF_PAUSE,\n  18: PrintStage.SCANNER_LASER_PARA_CALI,\n  19: PrintStage.EXTRUDER_ABSOLUTE_FLOW_CALI,\n  20: PrintStage.HOTEND_TEMPERATURE_ERROR_PAUSE,\n  21: PrintStage.HEATED_BED_TEMPERATURE_ERROR_PAUSE,\n  22: PrintStage.FILAMENT_UNLOADING,\n  23: PrintStage.SKIP_STEP_PAUSE,\n  24: PrintStage.FILAMENT_LOADING,\n  25: PrintStage.MOTOR_NOISE_CALIBRATION,\n  26: PrintStage.AMS_LOST_PAUSE,\n  27: PrintStage.HEAT_BREAK_FAN_PAUSE,\n  28: PrintStage.CHAMBER_TEMPERATURE_CONTROL_ERROR_PAUSE,\n  29: PrintStage.CHAMBER_COOLING,\n  30: PrintStage.USER_INSERT_GCODE_PAUSE,\n  31: PrintStage.MOTOR_NOISE_SHOWOFF,\n  32: PrintStage.NOZZLE_FILAMENT_COVERED_DETECTED_PAUSE,\n  33: PrintStage.CUTTER_ERROR_PAUSE,\n  34: PrintStage.FIRST_LAYER_ERROR_PAUSE,\n  35: PrintStage.NOZZLE_CLOG_PAUSE\n};\n\n/**\n * Detailed information about a print stage\n */\nexport interface PrintStageInfo {\n  /** The current stage of printing */\n  stage: PrintStage;\n  /** Progress percentage within the current stage (0-100) */\n  progress: number;\n  /** Human-readable name of the stage */\n  name: string;\n  /** Detailed description of what's happening in this stage */\n  description: string;\n  /** Whether this stage can be controlled (paused/resumed/skipped) */\n  controllable: boolean;\n  /** Whether this stage is critical for print success */\n  critical: boolean;\n  /** Estimated time remaining in this stage (seconds) */\n  timeRemaining?: number;\n}\n\nexport const PrintStageDetails: Record<PrintStage, Partial<PrintStageInfo>> = {\n  [PrintStage.PRINTING]: {\n    controllable: true,\n    critical: true,\n    description: \"Actively printing the model\"\n  },\n  [PrintStage.BED_LEVELING]: {\n    controllable: false,\n    critical: true,\n    description: \"Performing automatic bed leveling calibration\"\n  },\n  [PrintStage.HEATBED_PREHEATING]: {\n    controllable: false,\n    critical: true,\n    description: \"Preheating the build plate to required temperature\"\n  },\n  [PrintStage.XY_MECH_MODE_SWEEP]: {\n    controllable: false,\n    critical: true,\n    description: \"Calibrating XY mechanical movement\"\n  },\n  [PrintStage.CHANGE_MATERIAL]: {\n    controllable: true,\n    critical: false,\n    description: \"Changing filament material\"\n  },\n  [PrintStage.M400_PAUSE]: {\n    controllable: false,\n    critical: false,\n    description: \"Temporary pause for machine commands\"\n  },\n  [PrintStage.FILAMENT_RUNOUT_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to filament running out\"\n  },\n  [PrintStage.HOTEND_HEATING]: {\n    controllable: false,\n    critical: true,\n    description: \"Heating nozzle to required temperature\"\n  },\n  [PrintStage.EXTRUDE_COMPENSATION_SCAN]: {\n    controllable: false,\n    critical: true,\n    description: \"Calibrating extrusion compensation\"\n  },\n  [PrintStage.BED_SCAN]: {\n    controllable: false,\n    critical: true,\n    description: \"Scanning bed surface topology\"\n  },\n  [PrintStage.FIRST_LAYER_SCAN]: {\n    controllable: false,\n    critical: true,\n    description: \"Inspecting first layer quality\"\n  },\n  [PrintStage.BE_SURFACE_TYPT_IDENTIFICATION]: {\n    controllable: false,\n    critical: true,\n    description: \"Identifying build plate surface type\"\n  },\n  [PrintStage.SCANNER_EXTRINSIC_PARA_CALI]: {\n    controllable: false,\n    critical: true,\n    description: \"Calibrating Micro Lidar parameters\"\n  },\n  [PrintStage.TOOLHEAD_HOMING]: {\n    controllable: false,\n    critical: true,\n    description: \"Moving toolhead to home position\"\n  },\n  [PrintStage.NOZZLE_TIP_CLEANING]: {\n    controllable: false,\n    critical: true,\n    description: \"Cleaning nozzle tip\"\n  },\n  [PrintStage.EXTRUDER_TEMP_PROTECT_CALI]: {\n    controllable: false,\n    critical: true,\n    description: \"Verifying extruder temperature protection\"\n  },\n  [PrintStage.USER_PAUSE]: {\n    controllable: true,\n    critical: false,\n    description: \"Print manually paused by user\"\n  },\n  [PrintStage.TOOLHEAD_SHELL_OFF_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to front cover falling\"\n  },\n  [PrintStage.SCANNER_LASER_PARA_CALI]: {\n    controllable: false,\n    critical: true,\n    description: \"Calibrating micro lidar laser parameters\"\n  },\n  [PrintStage.EXTRUDER_ABSOLUTE_FLOW_CALI]: {\n    controllable: false,\n    critical: true,\n    description: \"Calibrating absolute extrusion flow\"\n  },\n  [PrintStage.HOTEND_TEMPERATURE_ERROR_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to nozzle temperature error\"\n  },\n  [PrintStage.HEATED_BED_TEMPERATURE_ERROR_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to bed temperature error\"\n  },\n  [PrintStage.FILAMENT_UNLOADING]: {\n    controllable: true,\n    critical: false,\n    description: \"Unloading filament from extruder\"\n  },\n  [PrintStage.SKIP_STEP_PAUSE]: {\n    controllable: true,\n    critical: false,\n    description: \"Print paused for step skipping\"\n  },\n  [PrintStage.FILAMENT_LOADING]: {\n    controllable: true,\n    critical: false,\n    description: \"Loading filament into extruder\"\n  },\n  [PrintStage.MOTOR_NOISE_CALIBRATION]: {\n    controllable: false,\n    critical: false,\n    description: \"Calibrating motor noise reduction\"\n  },\n  [PrintStage.AMS_LOST_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to AMS communication loss\"\n  },\n  [PrintStage.HEAT_BREAK_FAN_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to heat break fan issue\"\n  },\n  [PrintStage.CHAMBER_TEMPERATURE_CONTROL_ERROR_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to chamber temperature error\"\n  },\n  [PrintStage.CHAMBER_COOLING]: {\n    controllable: false,\n    critical: true,\n    description: \"Cooling print chamber\"\n  },\n  [PrintStage.USER_INSERT_GCODE_PAUSE]: {\n    controllable: true,\n    critical: false,\n    description: \"Print paused by user-inserted GCode\"\n  },\n  [PrintStage.MOTOR_NOISE_SHOWOFF]: {\n    controllable: false,\n    critical: false,\n    description: \"Demonstrating motor noise reduction\"\n  },\n  [PrintStage.NOZZLE_FILAMENT_COVERED_DETECTED_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to filament covering nozzle\"\n  },\n  [PrintStage.CUTTER_ERROR_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to filament cutter error\"\n  },\n  [PrintStage.FIRST_LAYER_ERROR_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to first layer error\"\n  },\n  [PrintStage.NOZZLE_CLOG_PAUSE]: {\n    controllable: true,\n    critical: true,\n    description: \"Print paused due to nozzle clog\"\n  }\n};\n\n/**\n * Speed levels of the printer.\n *\n * Extracted from https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.hpp#L73-L80\n */\nexport enum SpeedLevel {\n  SILENT = \"1\",\n  NORMAL = \"2\",\n  SPORT = \"3\",\n  LUDICROUS = \"4\",\n}\n\nexport enum FilamentType {\n  PLA = \"PLA\",\n  ABS = \"ABS\",\n  TPU = \"TPU\",\n  PC = \"PC\",\n  ASA = \"ASA\",\n  PA_CF = \"PA-CF\",\n  PA6_CF = \"PA6-CF\",\n  PET_CF = \"PET-CF\",\n  PETG = \"PETG\",\n  PETG_CF = \"PETG-CF\",\n  PLA_AERO = \"PLA-AERO\",\n  PLA_CF = \"PLA-CF\",\n  PPA_CF = \"PPA-CF\",\n  PPA_GF = \"PPA-GF\",\n  PA = \"PA\",\n  HIPS = \"HIPS\",\n  PPS = \"PPS\",\n  PPS_CF = \"PPS-CF\",\n  PVA = \"PVA\",\n  // bambu-specific filaments\n  PLA_S = \"PLA-S\",\n  PA_S = \"PLA-S\",\n}\n\n/**\n * An AMS tray (filament slot) instance.\n */\nexport interface AMSTray {\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  bed_temp: string\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  bed_temp_type: string\n  /**\n   * Unknown. Bambu Studio doesn't even check for it.\n   *\n   * Probably the temperature required for filament drying.\n   */\n  drying_temp: string\n  /**\n   * Probably the time required for filament drying.\n   */\n  drying_time: string\n  /**\n   * The ID of the tray.\n   */\n  id: string\n  /**\n   * The loaded filament's maximum nozzle temperature.\n   */\n  nozzle_temp_max: StringNumber\n  /**\n   * The loaded filament's minimum nozzle temperature.\n   */\n  nozzle_temp_min: StringNumber\n  /**\n   * The amount filament remaining in %, if enabled and an official Bambu filament is loaded.\n   *\n   * With non-official Bambu filament:\n   * - 0: Tracking is disabled.\n   * - -1: Tracking is enabled.\n   */\n  remain: number\n  /**\n   * The UID of the filament's NFC that was scanned.\n   *\n   * Uses:\n   * - Check if filament's manufacturer is Bambu Lab: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1090-L1101\n   *\n   * TODO: Extract when received from printer / provide helper function to do so.\n   */\n  tag_uid: string\n  /**\n   * The color of the filament loaded in HEX color code.\n   */\n  tray_color: string\n  /**\n   * The diameter of the spool loaded.\n   */\n  tray_diameter: 1.75\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  tray_id_name: string\n  /**\n   * The ID of the base config file for the filament.\n   *\n   * Uses:\n   * - Associate the filament loaded with it's complete brand name. Use the `getFilamentConfig` function for getting the config.\n   *\n   * Config files can be found here: https://github.com/bambulab/BambuStudio/tree/master/resources/profiles/BBL/filament\n   */\n  tray_info_idx: string\n  /**\n   * No use cases are known.\n   */\n  tray_sub_brands: \"\"\n  /**\n   * The type of filament loaded into the tray (filament slot).\n   */\n  tray_type: FilamentType\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  tray_uuid: string\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  tray_weight: string\n  /**\n   * Information about the AI camera features (?)\n   */\n  xcam_info: string\n}\n\n/**\n * An AMS instance.\n */\nexport interface AMS {\n  humidity: string\n  id: string\n  temp: string\n  tray: [\n    AMSTray | undefined,\n    AMSTray | undefined,\n    AMSTray | undefined,\n    AMSTray | undefined,\n  ]\n}\n\n/**\n * External spool (tray). This has unused values due to being a copy of the AMS trays.\n */\nexport interface ExternalTray extends AMSTray {\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  cols: StringNumber[]\n  /**\n   * The ID of the tray.\n   */\n  id: \"254\"\n  /**\n   * The loaded filament's \"k\" value (manually set in Bambu Studio).\n   */\n  k: number\n  /**\n   * The loaded filament's \"n\" value (manually set in Bambu Studio).\n   */\n  n: number\n}\n\n/**\n * Status of the AMS' RFID reader.\n */\nexport enum AmsRFIDStatus {\n  IDLE = 0,\n  READING = 1,\n  GCODE_TRANS = 2,\n  GCODE_RUNNING = 3,\n  ASSISTANT = 4,\n  SWITCH_FILAMENT = 5,\n  HAS_FILAMENT = 6,\n}\n\n/**\n * Bambu Lab's proprietary Health Management System (HMS).\n *\n * More info: https://wiki.bambulab.com/en/x1/troubleshooting/intro-hms\n *\n * All error codes: https://wiki.bambulab.com/en/hms/home\n */\nexport interface HMS {\n  attr: number\n  code: number\n}\n\n/**\n * Interior lighting related status instance.\n */\nexport interface LightReport {\n  node: \"chamber_light\" | \"work_light\"\n  mode: \"on\" | \"off\" | \"flashing\"\n}\n\n/**\n * The possible progress states of a firmware upgrade.\n *\n * Extracted from https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L3481-L3494\n */\nexport enum UpgradeStatusProgressState {\n  DOWNLOADING = \"DOWNLOADING\",\n  UPGRADE_REQUEST = \"UPGRADE_REQUEST\",\n  PRE_FLASH_START = \"PRE_FLASH_START\",\n  PRE_FLASH_SUCCESS = \"PRE_FLASH_SUCCESS\",\n}\n\n/**\n * The possible finish states of a firmware upgrade.\n *\n * Extracted from https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L3481-L3494\n */\nexport enum UpgradeStatusFinishState {\n  UPGRADE_SUCCESS = \"UPGRADE_SUCCESS\",\n  DOWNLOAD_FAIL = \"DOWNLOAD_FAIL\",\n  FLASH_FAIL = \"FLASH_FAIL\",\n  PRE_FLASH_FAIL = \"PRE_FLASH_FAIL\",\n  UPGRADE_FAIL = \"UPGRADE_FAIL\",\n}\n\n/**\n * Error codes thrown by the upgrade.\n */\nexport enum UpgradeErrorCode {\n  UpgradeNoError = 0,\n  UpgradeDownloadFailed = 1,\n  UpgradeVerifyFailed = 2,\n  UpgradeFlashFailed = 3,\n  UpgradePrinting = 4,\n}\n\n/**\n * The possible states the printer's screen will display.\n */\nexport enum UpgradeDisplayState {\n  UNAVAILABLE = 0,\n  IDLE = 1,\n  UPGRADING = 2,\n  UPGRADE_FINISHED = 3,\n}\n\n/**\n * Contains basic data about a filament, which is then extended by the final product.\n */\nexport interface BaseFilamentConfig {\n  type: \"filament\"\n  name: string\n  inherits: string\n  from: string\n  instantiation: StringBoolean\n  fan_cooling_layer_time: [StringNumber]\n  filament_max_volumetric_speed: [StringNumber]\n  filament_density: [StringNumber]\n  filament_cost: [StringNumber]\n  cool_plate_temp: [StringNumber]\n  eng_plate_temp: [StringNumber]\n  hot_plate_temp: [StringNumber]\n  textured_plate_temp: [StringNumber]\n  cool_plate_temp_initial_layer: [StringNumber]\n  eng_plate_temp_initial_layer: [StringNumber]\n  hot_plate_temp_initial_layer: [StringNumber]\n  textured_plate_temp_initial_layer: [StringNumber]\n  nozzle_temperature_initial_layer: [StringNumber]\n  reduce_fan_stop_start_freq: [StringNumber]\n  fan_min_speed: [StringNumber]\n  overhang_fan_threshold: [StringNumber]\n  close_fan_the_first_x_layers: [StringNumber]\n  nozzle_temperature: [StringNumber]\n  temperature_vitrification: [StringNumber]\n  nozzle_temperature_range_low: [StringNumber]\n  nozzle_temperature_range_high: [StringNumber]\n  slow_down_min_speed: [StringNumber]\n  slow_down_layer_time: [StringNumber]\n  additional_cooling_fan_speed: [StringNumber]\n  filament_start_gcode: [string]\n}\n\n/**\n * The config files ending with @base\n */\nexport interface ExtendedFilamentConfig extends Partial<BaseFilamentConfig> {\n  type: \"filament\"\n  name: string\n  inherits: string\n  from: string\n  filament_id: string\n  setting_id: string\n}\n\n/**\n * The final filament config data. Contains the inherited and @base file data.\n */\nexport interface FilamentConfig {\n  type: \"filament\"\n  name: string\n  inherits: string\n  from: string\n  filament_id: string\n  instantiation: StringBoolean\n  filament_cost: [StringNumber]\n  filament_vendor: [string]\n  nozzle_temp_min: string;\n  nozzle_temp_max: string;\n  bed_temp: string;\n  bed_temp_type: string;\n}\n\nexport interface FilamentConfigs {\n  [key: string]: FilamentConfig;\n}\n\nexport const filamentConfigs: FilamentConfigs = {\n  PLA: {\n    type: \"filament\",\n    name: \"PLA\",\n    inherits: \"\",\n    from: \"\",\n    filament_id: \"PLA\",\n    instantiation: \"true\",\n    filament_cost: [\"20\"],\n    filament_vendor: [\"Generic\"],\n    nozzle_temp_min: \"190\",\n    nozzle_temp_max: \"230\",\n    bed_temp: \"60\",\n    bed_temp_type: \"normal\"\n  },\n  ABS: {\n    type: \"filament\",\n    name: \"ABS\",\n    inherits: \"\",\n    from: \"\",\n    filament_id: \"ABS\",\n    instantiation: \"true\",\n    filament_cost: [\"25\"],\n    filament_vendor: [\"Generic\"],\n    nozzle_temp_min: \"220\",\n    nozzle_temp_max: \"270\",\n    bed_temp: \"90\",\n    bed_temp_type: \"high\"\n  }\n}\n\n/**\n * Reports all sensors and statuses of the printer.\n */\nexport interface PushAllResponse extends PrintMessageCommand {\n  /**\n   * Status of all connected AMSes.\n   */\n  ams: {\n    ams: [] | [AMS] | [AMS, AMS] | [AMS, AMS, AMS] | [AMS, AMS, AMS, AMS]\n    /**\n     * Unknown.\n     *\n     * Probably used for checking for new AMSes.\n     */\n    ams_exist_bits: StringNumber\n    /**\n     * Unknown.\n     *\n     * Could possibly be related to storing whether the filament's data has been read from the AMSes.\n     */\n    insert_flag: boolean\n    /**\n     * Exact definition is unknown, but it appears to be used for checking if all filaments have been read since startup or not.\n     */\n    power_on_flag: boolean\n    /**\n     * Unknown.\n     *\n     * Probably used for checking for new AMSes.\n     */\n    tray_exist_bits: StringNumber\n    /**\n     * Unknown.\n     *\n     * Probably used for checking for new AMSes.\n     */\n    tray_is_bbl_bits: StringNumber\n    /**\n     * Current tray selected by all AMSes.\n     * - 254: external spool (vt_tray)\n     * - otherwise: ((ams_id * 4) + tray_id) for current tray\n     *\n     * @example Ams 2 tray 2 would be: (1*4)+1 = 5.\n     */\n    tray_now: StringNumber\n    /**\n     * Unknown.\n     *\n     * Probably used for checking which filament slots (trays) have already been read.\n     */\n    tray_read_done_bits: StringNumber\n    /**\n     * Unknown.\n     *\n     * Probably used for signalling which filament slots (trays) are currently being read.\n     */\n    tray_reading_bits: StringNumber\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    tray_tar: StringNumber\n    /**\n     * Unknown.\n     *\n     * Could possibly be related to the AMS UI on the X1 series and in Bambu Studio.\n     */\n    version: number\n  }\n  /**\n   * The RFID reader status of the connected AMSes.\n   */\n  ams_rfid_status: AmsRFIDStatus\n  /**\n   * The AMS status.\n   *\n   * How to extract it: https://github.com/bambulab/BambuStudio/blob/f96b6cd433cf925e9759260925cd2142abf298ef/src/slic3r/GUI/DeviceManager.cpp#L736-L759\n   *\n   * TODO: Extract when received from printer / provide helper function to do so.\n   */\n  ams_status: number\n  /**\n   * The target temperature of the printing bed in Celsius.\n   */\n  bed_target_temper: number\n  /**\n   * The temperature of the printing bed in Celsius.\n   */\n  bed_temper: number\n  /**\n   * Speed of the auxiliary fan in %.\n   */\n  big_fan1_speed: StringNumberRange<0, 100>\n  /**\n   * Speed of the chamber fan in %.\n   */\n  big_fan2_speed: StringNumberRange<0, 100>\n  /**\n   * Interior chamber temperature.\n   */\n  chamber_temper: number\n  /**\n   * The interior chamber's target temperature.\n   *\n   * Exists on the X1 series but only used on the X1E.\n   */\n  ctt: number\n  /**\n   * `chamber_temper` doesn't make sense on P1 series (due to it not being enclosed\n   * by default) hence the `frame_temper` property.\n   *\n   * Even though `chamber_temper` exists, there is no physical sensor for it, but it is still included for some reason.\n   *\n   * The value of `chamber_temper` on the P1 series is a placeholder.\n   */\n  frame_temper: number\n  /**\n   * The command the response corresponds to.\n   */\n  command: \"push_status\"\n  /**\n   * Speed of the part cooling fan in %.\n   */\n  cooling_fan_speed: StringNumberRange<0, 100>\n  /**\n   * Unknown. Bambu Studio doesn't even check for it.\n   */\n  fail_reason: StringNumber\n  /**\n   * Array of filament backup groups. Each number is a bitmap where each bit represents\n   * an AMS slot that can be used as backup for that filament group. Compatible slots\n   * (same filament type and color) are grouped together.\n   * \n   * For example, if slots 0 and 4 contain the same filament type and color,\n   * they would be in the same group with bitmap value 17 (binary: 0001 0001).\n   */\n  filam_bak: number[]\n  /**\n   * Contains the current speed of all the fans\n   *\n   * How to extract it: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L3273-L3279\n   *\n   * TODO: Extract when received from printer / provide helper function to do so.\n   */\n  fan_gear: number\n  /**\n   * Something related to the firmware upgrades.\n   */\n  force_upgrade: boolean\n  /**\n   * Name of the GCode file that is currently printing.\n   *\n   * In most cases it's in the format \"/plate_#.gcode\", unless printing a\n   * gcode file directly (bbl.gcode, or calibration gcodes) instead of a 3mf.\n   */\n  gcode_file: string\n  /**\n   * % of GCode prepared (sliced?)\n   */\n  gcode_file_prepare_percent: StringNumberRange<0, 100>\n  /**\n   * Epoch time when the print started.\n   */\n  gcode_start_time: StringNumber\n  /**\n   * The current status of the printer.\n   */\n  gcode_state: PrinterStatus\n  /**\n   * Fan speed in %\n   *\n   * Heat break fan: The smaller fan on the hotend itself\n   */\n  heatbreak_fan_speed: StringNumberRange<0, 100>\n  /**\n   * Bambu Lab's proprietary Health Management System (HMS)\n   *\n   * More info: https://wiki.bambulab.com/en/x1/troubleshooting/intro-hms\n   *\n   * All error codes: https://wiki.bambulab.com/en/hms/home\n   */\n  hms: HMS[]\n  /**\n   * This single property houses a lot of data regarding the printer.\n   * There's currently no documentation for it except Bambu Studio's source code:\n   *\n   * - Check if axes are homed: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1255-L1269\n   * - Check if printer is using 220V: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1346-L1351\n   * - Check if camera is currently recording: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1353\n   * - Check if AI camera detected filament entanglement: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1368\n   * - Check if motor noise cancellation has been calibrated: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1376-L1378\n   * - Check if the current machine is a P1P and has the enclosure enabled: https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1380-L1387\n   * - Check current SD card state (has a lot more info than the sdcard property): https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1389\n   * - Check if printer is using wired network (ethernet; X1E exclusive): https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1391\n   */\n  home_flag: number\n  hw_switch_state: number\n  /**\n   * The printer's onboard camera.\n   */\n  ipcam: {\n    /**\n     * The IP and path to the LAN liveview, otherwise disabled.\n     * @version X1 series exclusive\n     */\n    liveview: string | \"disable\"\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    tukt_server: string\n    /**\n     * 0: Doesn't have camera\n     * 1: Has camera\n     */\n    ipcam_dev: StringNumberRange<0, 1>\n    /**\n     * Whether recording while printing is enabled.\n     */\n    ipcam_record: \"enable\" | \"disable\"\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    mode_bits: 3\n    /**\n     * The camera's resolution\n     *\n     * The value is known to be very weird on the A1 series.\n     */\n    resolution: \"720p\" | \"1080p\" | string\n    /**\n     * Whether creating a timelapse while printing is enabled.\n     */\n    timelapse: \"enable\" | \"disable\"\n  }\n  /**\n   * Current layer number while printing.\n   */\n  layer_num: number\n  /**\n   * Probably to differentiate between in-house prototypes and production machines.\n   */\n  lifecycle: \"product\" | \"engineer\"\n  /**\n   * Internal light states\n   */\n  lights_report: LightReport[]\n  /**\n   * Unknown. Bambu Studio doesn't even check for it.\n   */\n  maintain: number\n  /**\n   * % of print done\n   */\n  mc_percent: NumberRange<0, 100>\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   *\n   * Perhaps the current GCode line while printing?\n   */\n  mc_print_line_number: StringNumber\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  mc_print_error_code: \"0\" | StringNumber\n  /**\n   * Something to do with signalling if calibration is done according to source code\n   *\n   * https://github.com/bambulab/BambuStudio/blob/master/src/slic3r/GUI/DeviceManager.cpp#L1331-L1342\n   */\n  mc_print_stage: StringNumberRange<1, 3>\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  mc_print_sub_stage: number\n  /**\n   * Remaining time from print.\n   */\n  mc_remaining_time: number\n  /**\n   * Probably to differentiate between in-house prototypes and production machines\n   */\n  mess_production_state: \"active\" | \"inactive\"\n  /**\n   * - 0: Full (pushAll) message\n   * - 1: Partial (pushStatus) \"difference\" message (only changed properties are sent)\n   *\n   * @deprecated Unavailable on the X1 series in LAN mode.\n   *\n   *  You can instead use isPushAllCommand or isPushStatusCommand from /responses or create a new PushAllCommand and PushStatus command from /commands and use their ownsResponse method for consistency.\n   */\n  msg: NumberRange<0, 1>\n  /**\n   * The target temperature of the nozzle in Celsius.\n   */\n  nozzle_target_temper: number\n  /**\n   * The temperature of the nozzle in Celsius.\n   */\n  nozzle_temper: number\n  /**\n   * Signals the status of some components of the printer and/or accessories.\n   */\n  online: {\n    /**\n     * Unknown.\n     */\n    ahb: boolean\n    /**\n     * The RFID reader.\n     */\n    rfid: boolean\n    /**\n     * Unknown.\n     */\n    version: number\n  }\n  /**\n   * Unknown. Some error code standard which isn't defined in Bambu Studio.\n   *\n   * These codes can be cleared using `system.clean_print_error` command.\n   */\n  print_error: number\n  /**\n   * Unknown. Bambu Studio doesn't even check for it.\n   */\n  print_gcode_action: number\n  /**\n   * Unknown. Bambu Studio doesn't even check for it.\n   */\n  print_real_action: number\n  /**\n   * Where the print originates from.\n   */\n  print_type: \"cloud\" | \"system\" | \"local\" | \"idle\"\n  /**\n   * Unknown. Something related to what's being printed.\n   */\n  profile_id: StringNumber\n  /**\n   * Unknown. Something related to what's being printed.\n   */\n  project_id: StringNumber\n  /**\n   * Unknown. Something related to a print queue. (?)\n   */\n  queue_est: number\n  /**\n   * Unknown. Something related to a print queue. (?)\n   */\n  queue_number: number\n  /**\n   * Unknown. Something related to a print queue. (?)\n   */\n  queue_sts: number\n  /**\n   * Unknown. Something related to a print queue. (?)\n   */\n  queue_total: number\n  /**\n   * Objects that have been skipped by the printer while printing,\n   */\n  s_obj: unknown[]\n  /**\n   * Whether the SD card is inserted.\n   */\n  sdcard: boolean\n  /**\n   * Related to general MQTT commands on all Bambu Lab printers. Incremented by one each response/request.\n   */\n  sequence_id: StringNumber\n  /**\n   * The current speed level.\n   */\n  spd_lvl: SpeedLevel\n  /**\n   * The current speed level in %.\n   */\n  spd_mag: NumberRange<50, 166>\n  /**\n   * An x (unknown) amount of previous stages.\n   */\n  stg: PrintStage[]\n  /**\n   * The current print stage.\n   */\n  stg_cur: PrintStage\n  /**\n   * Main purpose is unknown.\n   * - 0: printing from SD card\n   */\n  subtask_id: StringNumber\n  /**\n   * The name of the calibration gcode (without file extension), or the project file name (.3mf - with file extension)\n   */\n  subtask_name: string\n  /**\n   * Unknown. Bambu Studio appears to do nothing with it.\n   */\n  task_id: StringNumber\n  /**\n   * Total layer number of the current job.\n   */\n  total_layer_num: number\n  /**\n   * Firmware upgrade status data of the printer.\n   */\n  upgrade_state: {\n    /**\n     * Unknown.\n     *\n     * Some component's new version number.\n     */\n    ahb_new_version_number: string\n    /**\n     * The new version number of the AMS(es).\n     */\n    ams_new_version_number: string\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    consistency_request: boolean\n    /**\n     * What the display should say in the process.\n     */\n    dis_state: UpgradeDisplayState\n    /**\n     * Error codes thrown by the upgrade.\n     */\n    err_code: UpgradeErrorCode\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     *\n     * Probably has something to do with an update the user can't deny. (for ex.: security vulnerabilities)\n     */\n    force_upgrade: boolean\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    message: string\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    module: string\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    new_ver_list: string\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    new_version_state: number\n    /**\n     * Unknown. Bambu Studio appears to do nothing with it.\n     */\n    ota_new_version_number: string\n    /**\n     * The progress of the update in %.\n     */\n    progress: StringNumberRange<0, 100>\n    /**\n     * Incremented by one every time a new status is returned.\n     */\n    sequence_id: number\n    /**\n     * The progress / finish states of the upgrade.\n     */\n    status: UpgradeStatusProgressState & UpgradeStatusFinishState\n  }\n  /**\n   * Print file download status data.\n   */\n  upload: {\n    /**\n     * Downloaded file size (?)\n     */\n    file_size: number\n    /**\n     * Total file size (?)\n     */\n    finish_size: number\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    message: string\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    oss_url: string\n    /**\n     * The progress of the file download in %.\n     */\n    progress: StringNumberRange<0, 100>\n    /**\n     * Incremented by one every time a new status is returned.\n     */\n    sequence_id: StringNumber\n    /**\n     * Download speed in unknown units.\n     */\n    speed: number\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    status: \"idle\" | string\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     */\n    task_id: string\n    /**\n     * Time remaining until download completes in unknown units.\n     */\n    time_remaining: number\n    /**\n     * Unknown. Bambu Studio doesn't even check for it.\n     *\n     * Probably some kind of error code.\n     */\n    trouble_id: string\n  }\n  /**\n   * External spool (tray). This has unused values due to being a copy of the AMS trays.\n   */\n  vt_tray: ExternalTray\n  /**\n   * The signal strength of the Wi-Fi signal which the printer is connected to in dBm.\n   */\n  wifi_signal: `-${number}dBm`\n  /**\n   * AI-related features of the printer's camera.\n   */\n  xcam: {\n    /**\n     * Whether skipping parts setting is enabled.\n     */\n    allow_skip_parts: boolean\n    /**\n     * Whether the printer should detect the correct orientation and type of the buildplate.\n     */\n    buildplate_marker_detector: boolean\n    /**\n     * Whether the first layer inspection is enabled for the printer.\n     */\n    first_layer_inspector: boolean\n    /**\n     * Whether the printer is allowed to stop the print in the event it detects an abnormality.\n     */\n    print_halt: boolean\n    /**\n     * The sensitivity for the spaghetti detector, first layer inspection, etc.\n     */\n    halt_print_sensitivity: \"low\" | \"medium\" | \"high\"\n    /**\n     * Whether print monitoring is enabled.\n     */\n    printing_monitor: boolean\n    /**\n     * Whether the spaghetti detector is enabled.\n     */\n    spaghetti_detector: boolean\n  }\n  /**\n   * AI-related features' status.\n   */\n  xcam_status: StringNumber\n}\n\n/**\n * Retrieves the FilamentConfig object associated with the specified ID.\n * @param id - The ID of the FilamentConfig to retrieve.\n * @returns The FilamentConfig object if found, otherwise undefined.\n */\nexport function getFilamentConfig(id: string): FilamentConfig | null {\n  // @ts-ignore - all of the properties should be there\n  return filamentConfigs[id as keyof typeof filamentConfigs] ?? null\n}\n\n/**\n * Converts a numeric stage_curr value to its corresponding PrintStage enum value\n * @param stageCurr - The numeric stage value (0-35)\n * @returns The corresponding PrintStage enum value, or undefined if not found\n */\nexport function getStageFromCurr(stageCurr: number): PrintStage | undefined {\n  return stageCurrToStage[stageCurr];\n}\n\n/**\n * Converts an array of numeric stage values to an array of PrintStage enum values\n * @param stages - Array of numeric stage values (0-35)\n * @returns Array of corresponding PrintStage enum values, filtering out any undefined stages\n */\nexport function getStagesFromArray(stages: number[]): PrintStage[] {\n  return stages\n    .map(stage => stageCurrToStage[stage])\n    .filter((stage): stage is PrintStage => stage !== undefined);\n}\n\n/**\n * Represents a stage with its details and completion status\n */\nexport interface EnrichedStageInfo extends Partial<PrintStageInfo> {\n  stage: PrintStage;\n  description: string;\n  completed: boolean;\n  current: boolean;\n}\n\n/**\n * Creates an enriched array of stage information with completion status\n * @param currentStage - The current stage number (stage_curr)\n * @param stageHistory - Array of previous stage numbers (stg)\n * @returns Array of stages with their details and completion status\n * \n * @example\n * const stages = getEnrichedStages(4, [2, 13, 24, 4]);\n * // Returns array of EnrichedStageInfo with:\n * // - HEATBED_PREHEATING (completed)\n * // - TOOLHEAD_HOMING (completed)\n * // - FILAMENT_LOADING (completed)\n * // - CHANGE_MATERIAL (current, not completed)\n */\nexport function getEnrichedStages(currentStage: number, stageHistory: number[]): EnrichedStageInfo[] {\n  const currentPrintStage = stageCurrToStage[currentStage];\n  const historyStages = getStagesFromArray(stageHistory);\n  \n  // Find the index of the current stage in history\n  const currentIndex = historyStages.findIndex(stage => stage === currentPrintStage);\n  \n  // Create enriched stages from history\n  const enrichedStages = historyStages.map((stage, index) => {\n    const stageDetails = PrintStageDetails[stage];\n    return {\n      stage,\n      description: stageDetails?.description || \"Unknown stage\",\n      controllable: stageDetails?.controllable || false,\n      critical: stageDetails?.critical || false,\n      // A stage is completed if it's before the current stage in history\n      // or if the current stage isn't in history and this is not the last stage\n      completed: currentIndex >= 0 ? index < currentIndex : index < historyStages.length - 1,\n      current: stage === currentPrintStage\n    };\n  });\n\n  // If current stage is not in history, add it\n  if (currentPrintStage && !historyStages.includes(currentPrintStage)) {\n    const stageDetails = PrintStageDetails[currentPrintStage];\n    enrichedStages.push({\n      stage: currentPrintStage,\n      description: stageDetails?.description || \"Unknown stage\",\n      controllable: stageDetails?.controllable || false,\n      critical: stageDetails?.critical || false,\n      completed: false,\n      current: true\n    });\n  }\n\n  return enrichedStages;\n}\n\nexport function isPushAllCommand(data: PrintMessageCommand): data is PushAllResponse {\n  return data.command === \"push_status\" && Object.keys(data).length >= 40\n}","import { AMSControlAction } from \"./printerResponse\";\nimport { z } from \"zod\";\n\n// Light Control Schemas\nconst lightNodeSchema = z.enum([\"chamber_light\", \"work_light\"]);\nconst lightModeSchema = z.enum([\"on\", \"off\", \"flashing\"]);\nconst lightOptionsSchema = z.object({\n  onTime: z.number().optional(),\n  offTime: z.number().optional(),\n  loops: z.number().optional(),\n  interval: z.number().optional(),\n}).optional();\n\n// Fan Control Schemas\nconst fanTypeSchema = z.enum([\"1\", \"2\", \"3\"]).transform(val => parseInt(val));\nconst fanSpeedSchema = z.number().min(0).max(100);\n\n// Speed Control Schemas\nconst speedLevelSchema = z.enum([\"1\", \"2\", \"3\", \"4\"]);\n\n// Temperature Control Schemas\nconst tempPartSchema = z.enum([\"bed\", \"nozzle\", \"chamber\"]);\nconst temperatureSchema = z.number().min(0).max(300);\n\n// State Control Schemas\nconst stateSchema = z.enum([\"pause\", \"resume\", \"stop\"]);\n\n// G-code Schema\nconst gcodesSchema = z.array(z.string());\n\n// AMS Control Schema\nconst amsControlActionSchema = z.nativeEnum(AMSControlAction);\n\n// Filament Settings Schema\nconst filamentSettingsSchema = z.object({\n  ams_id: z.number(),\n  tray_id: z.number(),\n  filament_id: z.string(),\n  setting_id: z.string(),\n  color: z.string(),\n  filament_type: z.string(),\n  nozzle_temp_min: z.number(),\n  nozzle_temp_max: z.number(),\n});\n\n// Filament Loading Schema\nconst loadFilamentSchema = z.object({\n  trayId: z.number(),\n  oldTemp: z.number().optional(),\n  newTemp: z.number().optional(),\n});\n\nconst unloadFilamentSchema = z.object({\n  oldTemp: z.number().optional(),\n  newTemp: z.number().optional(),\n});\n\n// Axis Control Schema\nconst axisSchema = z.enum([\"X\", \"Y\", \"Z\", \"E\"]);\nconst axisControlSchema = z.object({\n  axis: axisSchema,\n  distance: z.number(),\n  unit: z.number().optional(),\n  speed: z.number().optional(),\n});\n\n// Clean Print Error Schema\nconst cleanPrintErrorSchema = z.object({\n  subtaskId: z.string(),\n  printError: z.number(),\n});\n\n// Power Loss Recovery Schema\nconst powerLossRecoverySchema = z.object({\n  action: z.enum([\"resume\", \"stop\"]),\n  subtaskId: z.string(),\n  printError: z.number(),\n});\n\n// Camera Control Schema\nconst cameraOperationSchema = z.enum([\"ipcam_record_set\", \"ipcam_timelapse\", \"ipcam_resolution_set\"]);\nconst cameraSchema = z.object({\n  operation: cameraOperationSchema,\n  value: z.union([z.boolean(), z.string()]),\n});\n\n// Command Parameter Schemas\nconst commandSchemas = {\n  updateLight: z.object({\n    light: lightNodeSchema,\n    mode: lightModeSchema,\n    loopOptions: lightOptionsSchema,\n  }),\n  updateFan: z.object({\n    fan: fanTypeSchema,\n    speed: fanSpeedSchema,\n  }),\n  updateSpeed: z.object({\n    speed: speedLevelSchema,\n  }),\n  updateTemp: z.object({\n    part: tempPartSchema,\n    temperature: temperatureSchema,\n  }),\n  updateState: z.object({\n    state: stateSchema,\n  }),\n  gcode: z.object({\n    gcodes: gcodesSchema,\n  }),\n  resume: z.object({\n    cleanPrintError: z.boolean().optional(),\n  }),\n  ams_control: z.object({\n    param: z.any() // This can be refined further based on AMSControlAction structure\n  }),\n  refreshPrinterState: z.object({}),\n  ams_filament_settings: filamentSettingsSchema,\n  loadFilament: loadFilamentSchema,\n  unloadFilament: unloadFilamentSchema,\n  axisControl: axisControlSchema,\n  autoLevel: z.object({}),\n  goHome: z.object({}),\n  cleanPrintError: cleanPrintErrorSchema,\n  powerLossRecovery: powerLossRecoverySchema,\n  camera: cameraSchema,\n};\n\nexport type CommandSchemas = typeof commandSchemas;\n\nexport function validateCommandParams<T extends keyof CommandSchemas>(\n  command: T,\n  params: unknown\n): { success: true; data: z.infer<CommandSchemas[T]> } | { success: false; error: z.ZodError } {\n  const schema = commandSchemas[command];\n  const result = schema.safeParse(params);\n  \n  if (result.success) {\n    return { success: true, data: result.data };\n  } else {\n    return { success: false, error: result.error };\n  }\n}\n\nexport { commandSchemas }; ","import { AMSControlAction } from \"./printerResponse\";\nimport { NumberRange, SpeedLevel } from \"./printerResponse\";\nimport { validateCommandParams } from \"./commandSchemas\";\n\n// Re-export AMSControlAction so existing code doesn't break\nexport { AMSControlAction };\n\n// Command Categories\nexport type CommandCategory = \"info\" | \"pushing\" | \"system\" | \"print\";\n\n// Light Control Types\nexport enum LightEffect {\n  ON = \"on\",\n  OFF = \"off\",\n  FLASHING = \"flashing\",\n}\n\nexport enum LightNode {\n  CHAMBER = \"chamber_light\",\n  WORK = \"work_light\",\n}\n\nexport interface LightOptions {\n  onTime?: number;\n  offTime?: number;\n  loops?: number;\n  interval?: number;\n}\n\n// Camera Control Types\nexport enum CameraOperation {\n  RECORD = \"ipcam_record_set\",\n  TIMELAPSE = \"ipcam_timelapse\",\n  RESOLUTION = \"ipcam_resolution_set\",\n}\n\n// Fan Control Types\nexport enum FanType {\n  PART_COOLING = 1,\n  AUXILIARY = 2,\n  CHAMBER = 3,\n}\n\n// Axis Control Types\nexport type Axis = \"X\" | \"Y\" | \"Z\" | \"E\";\n\n// Valid Commands\nexport const VALID_COMMANDS = [\n  \"updateLight\",\n  \"updateFan\",\n  \"updateSpeed\",\n  \"updateTemp\",\n  \"updateState\",\n  \"gcode\",\n  \"resume\",\n  \"ams_control\",\n  \"refreshPrinterState\",\n  \"ams_filament_settings\",\n  \"loadFilament\",\n  \"unloadFilament\",\n  \"axisControl\",\n  \"autoLevel\",\n  \"goHome\",\n  \"cleanPrintError\",\n  \"powerLossRecovery\",\n  \"camera\",\n  \"cleanPrintError\",\n] as const;\n\nexport type CommandType = (typeof VALID_COMMANDS)[number];\n\n// Command Parameter Types\nexport type CommandParams = {\n  updateLight: {\n    light: LightNode;\n    mode: LightEffect;\n    loopOptions?: LightOptions;\n  };\n  updateFan: {\n    fan: FanType;\n    speed: NumberRange<0, 100>;\n  };\n  updateSpeed: {\n    speed: SpeedLevel;\n  };\n  updateTemp: {\n    part: \"bed\" | \"nozzle\" | \"chamber\";\n    temperature: NumberRange<0, 300>;\n  };\n  updateState: {\n    state: \"pause\" | \"resume\" | \"stop\";\n  };\n  gcode: {\n    gcodes: string[];\n  };\n  resume: {\n    cleanPrintError?: boolean;\n  };\n  ams_control: {\n    param: AMSControlAction;\n  };\n  refreshPrinterState: Record<string, never>;\n  ams_filament_settings: {\n    ams_id: number;\n    tray_id: number;\n    filament_id: string;\n    setting_id: string;\n    color: string;\n    filament_type: string;\n    nozzle_temp_min: number;\n    nozzle_temp_max: number;\n  };\n  loadFilament: {\n    trayId: number;\n    oldTemp?: number;\n    newTemp?: number;\n  };\n  unloadFilament: {\n    oldTemp?: number;\n    newTemp?: number;\n  };\n  axisControl: {\n    axis: Axis;\n    distance: number;\n    unit?: number;\n    speed?: number;\n  };\n  autoLevel: Record<string, never>;\n  goHome: Record<string, never>;\n  cleanPrintError: {\n    subtaskId: string;\n    printError: number;\n  };\n  powerLossRecovery: {\n    action: \"resume\" | \"stop\";\n    subtaskId: string;\n    printError: number;\n  };\n  camera: {\n    operation: CameraOperation;\n    value: boolean | string;\n  };\n};\n\n// Command Response Types\nexport interface CommandResponse {\n  sequence_id?: string;\n  status?: \"success\" | \"error\";\n  error?: string;\n}\n\n// Factory Functions\nexport const createCommand = <T extends CommandType>(\n  command: T,\n  params: CommandParams[T]\n): { command: T; params: CommandParams[T] } => ({\n  command,\n  params,\n});\n\n// Helper Functions\nexport const isValidCommand = (command: string): command is CommandType =>\n  VALID_COMMANDS.includes(command as CommandType);\n\n// Re-export the Zod validator\nexport { validateCommandParams };\n","/**\n * Error codes that indicate a job has failed\n */\nexport const ERROR_CODES_JOB_FAILED = [\n  83902466, 83902467, 83902468, 83902469, 83902470, 83902471, 83902472, 83902473,\n  83902474, 83902475, 117456897, 83902476, 83902477, 83902478, 83902484, 83902485,\n  83902486, 83902509, 83902510, 83902511, 83902519, 83902520, 83902522, 83918867,\n  83935248, 83968052, 50348032, 50348033, 50348034, 50348045, 50364424, 50364430,\n  50364432\n] as const;\n\n/**\n * Error code for local cancellation\n */\nexport const LOCAL_CANCEL_CODE = 50348044;\n\n/**\n * Type for all possible Bambu Lab error codes\n */\nexport type BambuErrorCode = keyof typeof ALL_ERRORS;\n\n/**\n * Complete mapping of Bambu Lab error codes to their descriptions\n */\nexport const ALL_ERRORS = {\n  5324857: 'Device login has expired, please try to bind again.',\n  50348032: 'Printing stopped because homing Z axis failed.',\n  50348033: 'The printer timed out waiting for the nozzle to cool down before homing.',\n  50348034: 'Printing Stopped because Auto Bed Leveling failed.',\n  50348037: 'The nozzle fan speed is abnormal.',\n  50348038: 'The nozzle is clogged.',\n  50348040: 'The AMS failed to change filament.',\n  50348041: 'Homing XY axis failed.',\n  50348042: 'Mechanical resonance frequency identification failed.',\n  50348043: 'Internal communication exception.',\n  50348044: 'Printing was cancelled.',\n  50348045: 'Resume failed after power loss.',\n  50348046: 'The motor self-check failed.',\n  50364416: 'Printing was paused for unknown reason. You can tap \"Resume\" to resume the print job.',\n  50364417: 'Printing was paused by the user. You can tap \"Resume\" to resume the print job.',\n  50364418: 'First layer defects were detected by the Micro Lidar. Please check the quality of the printed model before continuing your print.',\n  50364419: 'Spaghetti defects were detected by the AI Print Monitoring. Please check the quality of the printed model before continuing your print.',\n  50364420: 'Filament ran out. Please load new filament.',\n  50364421: 'Toolhead front cover fell off. Please remount the front cover and check to make sure your print is going okay.',\n  50364422: 'The build plate marker was not detected. Please confirm the build plate is correctly positioned on the heatbed with all four corners aligned, and the maker is clear.',\n  50364423: 'There was an unfinished print job when the printer lost power. If the model is still adhered to the build plate, you can try resuming the print job.',\n  50364424: 'Printing Stopped because nozzle temperature problem.',\n  50364425: 'Heatbed temperature malfunction.',\n  50364426: 'A Filament pile-up was detected by the AI Print Monitoring. Please clean the filament from the waste chute.',\n  50364427: 'The cutter is stuck. Please make sure the cutter handle is out.',\n  50364428: 'Skipping step detected, auto-recover complete; please resume print and check if there are any layer shift problems.',\n  50364429: 'Some objects have fallen down, or the extruder is not extruding normally. If the defects are acceptable, click \"Resume\" button to resume the print job.',\n  50364430: 'The print file is not available. Please check to see if the storage media has been removed.',\n  50364431: 'The door seems to be open, so printing was paused.',\n  50364432: 'Printing stopped because the hotend fan speed is abnormal.',\n  50364433: 'Detected build plate is not the same as the Gcode file. Please adjust slicer settings or use the correct plate.',\n  50364435: 'Printing was paused by the user. You can select \"Resume\" to continue printing.',\n  50364436: 'The nozzle is covered with filaments, or the build plate is installed incorrectly. Please cancel this printing and clean the nozzle or adjust the build plate according to the actual status, or tap \"Resume\" button to resume the print job.',\n  50364437: 'The filament has run out, please load new filament in the \"filament\" page.',\n  50364438: 'The nozzle is clogged up with filaments. Please cancel this printing and clean the nozzle according to the actual status, or tap \"Resume\" button to resume the print job.',\n  50364439: 'Foreign objects detected on hotbed, Please check and clean the hotbed, Then tap \"Resume\" button to resume the print job.',\n  50364440: 'Chamber temperature malfunction.',\n  50364441: 'No build plate is placed.',\n  83902465: 'Failed to connect to Bambu Cloud. Please check your network connection.',\n  83902466: 'Unsupported print file path or name. Please resend the printing job.',\n  83902467: 'Printing stopped because the printer was unable to parse the file. Please resend your print job.',\n  83902468: \"The printer can't receive new print jobs while printing. Resend after the current print finishes.\",\n  83902469: 'Print jobs are not allowed to be sent while updating firmware.',\n  83902470: 'There is not enough free storage space for the print job. Restoring to factory settings can release available space.',\n  83902471: 'Print jobs are not allowed to be sent while force updating or when repair updating is required.',\n  83902472: 'Starting printing failed. please power cycle the printer and resend the print job.',\n  83902473: 'Print jobs are not allowed to be sent while updating logs.',\n  83902474: 'The file name is not supported. Please rename and restart the printing job.',\n  83902475: 'There was a problem downloading a file. Please check you network connection and resend the printing job.',\n  83902476: 'Please insert a MicroSD card and restart the printing job.',\n  83902477: 'Please run a self-test and restart the printing job.',\n  83902478: 'Printing was cancelled.',\n  83902484: 'Slicing for the print job failed. Please check your settings and restart the print job.',\n  83902485: 'There is not enough free storage space for the print job. Please format or clean MicroSD card to release available space.',\n  83902486: 'The MicroSD Card is write-protected. Please replace the MicroSD Card.',\n  83902487: 'Binding failed. Please retry or restart the printer and retry.',\n  83902488: 'Binding configuration information parsing failed, please try again.',\n  83902489: 'The printer has already been bound. Please unbind it and try again.',\n  83902490: 'Cloud access failed. Possible reasons include network instability caused by interference, inability to access the internet, or router firewall configuration restrictions. You can try moving the printer closer to the router or checking the router configuration and then try again.',\n  83902491: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83902492: 'Cloud access is rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83902493: 'Cloud access failed, which may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83902494: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83902495: 'Authorization timed out. Please make sure that your phone or PC has access to the internet, and ensure that the Bambu Studio/Bambu Handy APP is running in the foreground during the binding operation.',\n  83902496: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83902497: 'Cloud access failed, which may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83902498: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83902499: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83902500: 'Cloud access failed. Possible reasons include network instability caused by interference, inability to access the internet, or router firewall configuration restrictions. You can try moving the printer closer to the router or checking the router configuration before you try again.',\n  83902501: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83902502: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83902503: 'Cloud access failed; this may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83902504: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83902505: 'Cloud access is rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83902506: 'Failed to connect to the router, which may be caused by wireless interference or being too far away from the router. Please try again or move the printer closer to the router and try again.',\n  83902507: 'Router connection failed due to incorrect password. Please check the password and try again.',\n  83902508: 'Failed to obtain IP address, which may be caused by wireless interference resulting in data transmission failure or DHCP address pool of the router being full. Please move the printer closer to the router and try again. If the issue persists, please check router settings to see whether the IP addresses have been exhausted.',\n  83902509: 'System exception.',\n  83902510: 'The system does not support the file system currently used by the Micro SD card. Please replace the Micro SD card or format the current Micro SD card to FAT32.',\n  83902511: 'The Micro SD card sector data is damaged. Please use the SD card repair tool to repair or format it. If it still cannot be identified, please replace the Micro SD card.',\n  83902519: 'Your sliced file is not compatible with current printer model. This file can\\'t be printed on this printer.',\n  83902520: 'The nozzle diameter in sliced file is not consistent with the current nozzle setting. This file can\\'t be printed.',\n  83902522: 'The current temperature is too low. In order to protect you and your printer. Printing task, moving axis and other operations is disabled. Please move the printer to an environment above 10 celsius degree.',\n  83918867: 'The print file is not available. Please check to see if the storage media has been removed.',\n  83918902: 'Your sliced file is not consistent with the current printer model. Continue?',\n  83935248: 'MicroSD Card read/write exception. please reinsert or replace MicroSD Card.',\n  83968023: 'Binding failed. Please retry or restart the printer and retry.',\n  83968024: 'Binding configuration information parsing failed, please try again.',\n  83968025: 'The printer has already been bound. Please unbind it and try again.',\n  83968026: 'Cloud access failed. Possible reasons include network instability caused by interference, inability to access the internet, or router firewall configuration restrictions. You can try moving the printer closer to the router or checking the router configuration and then try again.',\n  83968027: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83968028: 'Cloud access is rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83968029: 'Cloud access failed, which may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83968030: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83968031: 'Authorization timed out. Please make sure that your phone or PC has access to the internet, and ensure that the Bambu Studio/Bambu Handy APP is running in the foreground during the binding operation.',\n  83968032: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83968033: 'Cloud access failed, which may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83968034: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83968035: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83968036: 'Cloud access failed. Possible reasons include network instability caused by interference, inability to access the internet, or router firewall configuration restrictions. You can try moving the printer closer to the router or checking the router configuration before you try again.',\n  83968037: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83968038: 'Cloud access rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83968039: 'Cloud access failed; this may be caused by network instability due to interference. You can try moving the printer closer to the router before you try again.',\n  83968040: 'Cloud response is invalid. If you have tried multiple times and are still failing, please contact customer service.',\n  83968041: 'Cloud access is rejected. If you have tried multiple times and are still failing, please contact customer service.',\n  83968049: 'Device discovery binding is in progress, and the QR code cannot be displayed on the screen. You can wait for the binding to finish or abort the device discovery binding process in the APP/Studio and retry scanning the QR code on the screen for binding.',\n  83968050: 'QR code binding is in progress, so device discovery binding cannot be performed. You can scan the QR code on the screen for binding or exit the QR code display page on screen and try device discovery binding.',\n  83968051: 'Your APP region is not matched with your printer, please download the APP in the corresponding region and register your account again.',\n  83968052: 'The slicing progress has not been updated for a long time, and the printing task has exited. Please confirm the parameters and reinitiate printing.',\n  83968053: 'The device is in the process of binding and cannot respond to new binding requests.',\n  83968056: 'The regional settings do not match the printer, please check the printer\\'s regional settings.',\n  117456897: 'The AMS has been disabled for a print, but it still has filament loaded. Please unload the AMS filament , and switch to the spool holder filament for printing.',\n  117473281: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  117473282: 'The cutter is stuck. Please make sure the cutter handle is out.',\n  117473283: 'Failed to pull out the filament from the extruder. This might be caused by clogged extruder or filament broken inside the extruder.',\n  117473284: 'AMS failed to pull back filament. This could be due to a stuck spool or the end of the filament being stuck in the path.',\n  117473285: 'The AMS failed to send out filament. You can clip the end of your filament flat, and reinsert. If this message persists, please check the PTFE tubes in AMS for any signs of wear and tear.',\n  117473286: 'Unable to feed filament into the extruder. This could be due to entangled filament or a stuck spool. If not, please check if the AMS PTFE tube is connected.',\n  117473287: 'Extruding filament failed. The extruder might be clogged.',\n  117473296: 'The AMS assist motor is overloaded. This could be due to entangled filament or a stuck spool.',\n  117473297: 'AMS filament ran out. Please insert a new filament into the same AMS slot.',\n  117473298: 'Failed to get AMS mapping table; please click \"Retry\" to continue.',\n  117473299: 'Timeout purging old filament: Please check if the filament is stuck or the extruder is clogged. After troubleshooting, click the \"Retry\" button.',\n  117522433: 'Filament is still loaded from the AMS after it has been disabled. Please unload the filament, load from the spool holder, and restart printing.',\n  117538817: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  117538818: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  117538819: 'Failed to pull out the filament from the extruder. There may be an extruder clog or broken filament inside the extruder.',\n  117538820: 'AMS failed to pull back filament. This could be due to a stuck spool or the end of the filament being stuck in the path.',\n  117538821: 'The AMS failed to send filament. You canclip the end of your filament flat, and reinsert. If this message persists, please check the PTFE tubes in AMS for any signs of wear and tear.',\n  117538822: 'Unable to feed filament into the extruder. This could be due to entangled filament or a stuck spool.',\n  117538823: 'Failed to extrude the filament. Please check if the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  117538832: 'The AMS assist motor is overloaded. This could be due to entangled filament or a stuck spool.',\n  117538833: 'AMS filament ran out. Please insert a new filament into the same AMS slot.',\n  117538834: 'Failed to get AMS mapping table; please click \"Retry\" to continue.',\n  117538835: 'Timeout purging old filament: Please check if the filament is stuck or the extruder is clogged. After troubleshooting, click the \"Retry\" button.',\n  117587969: 'Filament is still loaded from the AMS after it has been disabled. Please unload the filament, load from the spool holder, and restart printing.',\n  117604353: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  117604354: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  117604355: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  117604356: 'Failed to pull back the filament from the toolhead to AMS. Please check whether the filament or the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117604357: 'Failed to feed the filament outside the AMS. Please clip the end of the filament flat and check to see if the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117604358: 'Failed to feed the filament into the toolhead. Please check whether the filament or the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117604359: 'Failed to extrude the filament. Please check if the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  117604368: 'AMS assist motor is overloaded. Please check if the spool or filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  117604369: 'AMS filament ran out. Please insert a new filament into the same AMS slot.',\n  117604370: 'Failed to get AMS mapping table; please click \"Retry\" to continue.',\n  117604371: 'Timeout purging old filament: Please check if the filament is stuck or the extruder is clogged. After troubleshooting, click the \"Retry\" button.',\n  117653505: 'Filament is still loaded from the AMS after it has been disabled. Please unload the filament, load from the spool holder, and restart printing.',\n  117669889: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  117669890: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  117669891: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  117669892: 'Failed to pull back the filament from the toolhead to AMS. Please check whether the filament or the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117669893: 'Failed to feed the filament outside the AMS. Please clip the end of the filament flat and check to see if the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117669894: 'Failed to feed the filament into the toolhead. Please check whether the filament or the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  117669895: 'Failed to extrude the filament. Please check if the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  117669904: 'AMS assist motor is overloaded. Please check if the spool or filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  117669905: 'AMS filament ran out. Please insert a new filament into the same AMS slot.',\n  117669906: 'Failed to get AMS mapping table; please click \"Retry\" to continue.',\n  117669907: 'Timeout purging old filament: Please check if the filament is stuck or the extruder is clogged. After troubleshooting, click the \"Retry\" button.',\n  134168577: 'Filament is still loaded from the AMS after it has been disabled. Please unload the filament, load from the spool holder, and restart printing.',\n  134184961: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  134184962: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  134184963: 'Please pull out the filament on the spool holder. If this message persists, please check to see if there is filament broken in the extruder. (Connect PTFE tube if you are about to use AMS)',\n  134184964: 'Failed to pull back the filament from the toolhead to AMS. Please check whether the filament or the spool is stuck. After troubleshooting, click the \"retry\" button.',\n  134184965: 'Failed to feed the filament outside the AMS. Please clip the end of the filament flat and check to see if the spool is stuck. After troubleshooting, click the \"Retry\" button.',\n  134184966: 'Please feed filament into the PTFE tube until it can not be pushed any farther.',\n  134184967: 'Please observe the nozzle. If the filament has been extruded, click \"Done\"; if it is not, please push the filament forward slightly and then click \"Retry\".',\n  134184976: 'AMS assist motor is overloaded. Please check if the spool or filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  134184977: 'AMS filament ran out. Please put a new filament into AMS and click the \"Retry\" button.',\n  134184978: 'Failed to get AMS mapping table; please click \"Retry\" to continue.',\n  134184979: 'Timeout purging old filament: Please check if the filament is stuck or the extruder is clogged. After troubleshooting, click the \"Retry\" button.',\n  134201347: 'Please pull out the filament on the spool holder. If this message persists, please check to see if there is filament broken in the extruder or PTFE Tube. (Connect PTFE tube if you are about to use AMS)',\n  134201350: 'Please feed filament into the PTFE tube until it can not be pushed any farther.',\n  201359361: 'First layer defects were detected. If the defects are acceptable, click \"Resume\" button to resume the print job.',\n  201359362: 'Spaghetti failure was detected.',\n  201359365: 'Purged filament has piled up in the waste chute, which may cause a tool head collision.',\n  201359369: 'Build plate localization marker was not found.',\n  201359370: 'The detected build plate is not the same as in G-code.',\n  201375747: 'Possible defects were detected in the first layer.',\n  201375748: 'Possible spaghetti failure was detected.',\n  201375750: 'Purged filament may have piled up in the waste chute.',\n  268484609: 'High bed temperature may lead to filament clogging in the nozzle. Please ensure ventilation for the printer.',\n  268484610: 'Printing CF material with stainless steel may cause nozzle damage.',\n  268484611: 'Enabling traditional timelapse might lead to defects. Please enable it as needed?',\n  268550145: 'Timelapse is not supported because Spiral vase is enabled in slicing presets.',\n  268550146: 'Timelapse is not supported because Print sequence is set to \"By object\".',\n  302006273: 'Filament is still loaded from the AMS when it has been disabled. Please unload AMS filament, load from spool holder, and restart print job.',\n  302022657: 'Cutting the filament failed. Please check to see if the cutter is stuck. Refer to the Assistant for solutions.',\n  302022658: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  302022659: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302022660: 'Failed to pull back the filament from the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302022661: 'Failed to feed the filament. Please load the filament, then click the \"Retry\" button.',\n  302022662: 'Failed to feed the filament into the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302022663: 'Failed to extrude the filament. This might be caused by clogged extruder or stuck filament. Refer to the Assistant for solutions.',\n  302022672: 'Filament or spool may be stuck.',\n  302022673: 'AMS filament ran out. Please insert a new filament into the same AMS slot.',\n  302022674: 'Failed to get AMS mapping table. Please click the \"Retry\" button to continue.',\n  302022675: 'Timeout while purging old filament. Please check if the filament is stuck or the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  302022676: 'The filament location in the toolhead was not found. Refer to the Assistant for solutions.',\n  302022677: 'Failed to pull out the filament from the toolhead. Please check if the filament is stuck, or the filament is broken inside the extruder or PTFE tube.',\n  302022678: 'The extruder is not extruding normally, please refer to the HMS. After trouble shooting. If the defects are acceptable, please click \"Retry\" button.',\n  302071809: 'Filament is still loaded from the AMS when it has been disabled. Please unload AMS filament, load from spool holder, and restart print job.',\n  302088193: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  302088194: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  302088195: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302088196: 'Failed to pull back the filament from the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302088197: 'Failed to feed the filament. Please load the filament and then click the \"Retry\" button.',\n  302088198: 'Failed to feed the filament into the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302088199: 'Failed to extrude the filament. The extruder may be clogged or the filament may be stuck, please refer to HMS. After troubleshooting, click \"Retry\" button.',\n  302088208: 'Please check if the spool or filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302088209: 'AMS filament has run out. Please insert a new filament into the AMS and click the \"Retry\" button.',\n  302088210: 'Failed to get AMS mapping table; please click the \"Retry\" button to continue.',\n  302088211: 'Timeout while purging old filament. Please check if the filament is stuck or the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  302088212: 'Failed to check the filament location in the tool head; please refer to the HMS. After troubleshooting, click the \"Retry\" button.',\n  302088213: 'Failed to pull back the filament from the toolhead. Please check if the filament is stuck or the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302088214: 'The extruder is not extruding normally, please refer to the HMS. After trouble shooting. If the defects are acceptable, please click \"Retry\" button.',\n  302137345: 'Filament is still loaded from the AMS when it has been disabled. Please unload AMS filament, load from spool holder, and restart print job.',\n  302153729: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  302153730: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  302153731: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302153732: 'Failed to pull back the filament from the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302153733: 'Failed to feed the filament. Please load the filament, then click the \"Retry\" button.',\n  302153734: 'Failed to feed the filament into the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302153735: 'Failed to extrude the filament. The extruder may be clogged or the filament may be stuck, please refer to HMS. After troubleshooting, click \"Retry\" button.',\n  302153744: 'Please check if the spool or filament is stuck. After troublesho',\n  302153745: 'AMS filament has run out. Please insert a new filament into the AMS and click the \"Retry\" button.',\n  302153746: 'Failed to get AMS mapping table; please click the \"Retry\" button to continue.',\n  302153747: 'Timeout while purging old filament. Please check if the filament is stuck or the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  302153748: 'Failed to check the filament location in the tool head, please refer to the HMS. After troubleshooting, click the \"Retry\" button.',\n  302153749: 'Failed to pull back the filament from the toolhead. Please check if the filament is stuck or is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302153750: 'The extruder is not extruding normally, please refer to the HMS. After trouble shooting. If the defects are acceptable, please click \"Retry\" button.',\n  302202881: 'Filament is still loaded from the AMS when it has been disabled. Please unload AMS filament, load from spool holder, and restart print job.',\n  302219265: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  302219266: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  302219267: 'Failed to pull out the filament from the extruder. Please check whether the extruder is clogged or whether the filament is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302219268: 'Failed to pull back the filament from the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302219269: 'Failed to feed the filament. Please load the filament, then click the \"Retry\" button.',\n  302219270: 'Failed to feed the filament into the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302219271: 'Failed to extrude the filament. The extruder may be clogged or the filament may be stuck, please refer to HMS. After troubleshooting, click \"Retry\" button.',\n  302219280: 'Please check if the spool or filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  302219281: 'AMS filament has run out. Please insert a new filament into the AMS and click the \"Retry\" button.',\n  302219282: 'Failed to get AMS mapping table; please click the \"Retry\" button to continue.',\n  302219283: 'Timeout while purging old filament. Please check if the filament is stuck or the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  302219284: 'Failed to check the filament location in the tool head; please refer to the HMS. After troubleshooting, click the \"Retry\" button.',\n  302219285: 'Failed to pull back the filament from the toolhead. Please check if the filament is stuck or is broken inside the extruder. After troubleshooting, click the \"Retry\" button.',\n  302219286: 'The extruder is not extruding normally, please refer to the HMS. After trouble shooting. If the defects are acceptable, please click \"Retry\" button.',\n  318717953: 'Filament is still loaded from the AMS when it has been disabled. Please unload AMS filament, load from spool holder, and restart print job.',\n  318734337: 'Failed to cut the filament. Please check the cutter. After troubleshooting, click the \"Retry\" button.',\n  318734338: 'The cutter is stuck. Please pull out the cutter handle and click the \"Retry\" button.',\n  318734339: 'Please pull out the filament on the spool holder. If this message persists, please check to see if there is filament broken in the extruder or PTFE Tube. (Connect PTFE tube if you are about to use AMS)',\n  318734340: 'Failed to pull back the filament from the toolhead. Please check whether the filament is stuck. After troubleshooting, click the \"Retry\" button.',\n  318734341: 'Failed to feed the filament. Please load the filament, then click the \"Retry\" button.',\n  318734342: 'Please feed filament into the PTFE tube until it can not be pushed any farther.',\n  318734343: 'Check nozzle. Click \"Done\" if filament was extruded, otherwise push filament forward slightly and click \"Retry.\"',\n  318734352: 'Please check if the filament or the spool is stuck.',\n  318734353: 'AMS filament has run out. Please insert a new filament into the AMS and click the \"Retry\" button.',\n  318734354: 'Failed to get AMS mapping table; please click the \"Retry\" button to continue.',\n  318734355: 'Timeout while purging old filament. Please check if the filament is stuck or the extruder clogged. After troubleshooting, click the \"Retry\" button.',\n  318750723: 'Please pull out the filament on the spool holder. If this message persists, please check to see if there is filament broken in the extruder or PTFE Tube. (Connect PTFE tube if you are about to use AMS)',\n  318750726: 'Please feed filament into the PTFE tube until it can not be pushed any farther.'\n} as const;\n\n/**\n * Helper function to get error message for a given error code\n */\nexport function getErrorMessage(code: BambuErrorCode): string {\n  return ALL_ERRORS[code];\n}\n\n/**\n * Check if an error code indicates a job failure\n */\nexport function isJobFailureError(code: number): boolean {\n  return ERROR_CODES_JOB_FAILED.includes(code as any);\n}\n\n/**\n * Check if an error code is a local cancel code\n */\nexport function isLocalCancelCode(code: number): boolean {\n  return code === LOCAL_CANCEL_CODE;\n}\n\n/**\n * HMS Message Severity Levels\n * Based on BambuStudio's implementation\n */\nexport enum HMSMessageLevel {\n  HMS_UNKNOWN = 0,\n  HMS_FATAL = 1,\n  HMS_SERIOUS = 2,\n  HMS_COMMON = 3,\n  HMS_INFO = 4\n}\n\n/**\n * Error categories to distinguish between different types of errors\n */\nexport enum ErrorCategory {\n  PRINT_ERROR = 'print_error',\n  HMS_ERROR = 'hms_error',\n  UNKNOWN = 'unknown'\n}\n\n/**\n * Structure for HMS error codes\n */\nexport interface HMSErrorInfo {\n  moduleId: number;\n  moduleNum: number;\n  partId: number;\n  msgLevel: HMSMessageLevel;\n  msgCode: number;\n  category: ErrorCategory;\n}\n\n/**\n * Parse HMS error code into its components\n * Based on BambuStudio's implementation\n * @param code The numeric HMS error code\n * @returns Parsed HMS error information\n */\nexport function parseHMSErrorCode(code: number): HMSErrorInfo {\n  // HMS error codes are often in the format 3xxxxxxxx\n  if (code > 300000000) {\n    const moduleId = (code >> 24) & 0xFF;\n    const moduleNum = (code >> 16) & 0xFF;\n    const partId = (code >> 8) & 0xFF;\n    const reserved = (code >> 0) & 0xFF;\n    \n    // Extract message level and code\n    const hmsCode = code % 1000000;\n    const msgLevelInt = hmsCode >> 16;\n    const msgLevel = msgLevelInt < 5 ? msgLevelInt : HMSMessageLevel.HMS_UNKNOWN;\n    const msgCode = hmsCode & 0xFFFF;\n    \n    return {\n      moduleId,\n      moduleNum,\n      partId,\n      msgLevel: msgLevel as HMSMessageLevel,\n      msgCode,\n      category: ErrorCategory.HMS_ERROR\n    };\n  }\n  \n  return {\n    moduleId: 0,\n    moduleNum: 0,\n    partId: 0,\n    msgLevel: HMSMessageLevel.HMS_UNKNOWN,\n    msgCode: code,\n    category: ErrorCategory.PRINT_ERROR\n  };\n}\n\n/**\n * Get the HMS module name based on module ID\n * @param moduleId The module ID from HMS error code\n * @returns Human-readable module name\n */\nexport function getHMSModuleName(moduleId: number): string {\n  switch (moduleId) {\n    case 1:\n      return \"MC\";\n    case 2:\n      return \"MainBoard\";\n    case 3:\n      return \"AMS\";\n    case 4:\n      return \"TH\";\n    case 5:\n      return \"XCam\";\n    default:\n      return `Unknown(0x${moduleId.toString(16)})`;\n  }\n}\n\n/**\n * Get the severity level description\n * @param level HMS message severity level\n * @returns Human-readable severity description\n */\nexport function getHMSSeverityName(level: HMSMessageLevel): string {\n  switch (level) {\n    case HMSMessageLevel.HMS_FATAL:\n      return \"Fatal\";\n    case HMSMessageLevel.HMS_SERIOUS:\n      return \"Serious\";\n    case HMSMessageLevel.HMS_COMMON:\n      return \"Common\";\n    case HMSMessageLevel.HMS_INFO:\n      return \"Info\";\n    default:\n      return \"Unknown\";\n  }\n}\n\n/**\n * Determine the error category based on the error code\n * @param code The error code\n * @returns The error category\n */\nexport function getErrorCategory(code: number): ErrorCategory {\n  if (code > 300000000) {\n    return ErrorCategory.HMS_ERROR;\n  } else if (ALL_ERRORS[code as keyof typeof ALL_ERRORS]) {\n    return ErrorCategory.PRINT_ERROR;\n  }\n  return ErrorCategory.UNKNOWN;\n}","import { PushAllResponse } from \"./printerResponse\";\n\nexport enum AmsStatusMain {\n  AMS_STATUS_MAIN_IDLE = 0x0,\n  AMS_STATUS_MAIN_FILAMENT_CHANGE = 0x1,\n  AMS_STATUS_MAIN_RFID_IDENTIFYING = 0x2,\n  AMS_STATUS_MAIN_ASSIST = 0x3,\n  AMS_STATUS_MAIN_CALIBRATION = 0x4,\n  AMS_STATUS_MAIN_SELF_CHECK = 0x5,\n  AMS_STATUS_MAIN_DEBUG = 0x6,\n  AMS_STATUS_MAIN_UNKNOWN = 0x7,\n}\n\n/**\n * Filament change steps during AMS operation\n */\nexport enum FilamentStep {\n  STEP_IDLE = 0,\n  STEP_HEAT_NOZZLE = 0x02,\n  STEP_CUT_FILAMENT = 0x03,\n  STEP_PULL_CURR_FILAMENT = 0x04,\n  STEP_PUSH_NEW_FILAMENT = 0x05,\n  STEP_CONFIRM_EXTRUDED = 0x06,\n  STEP_PURGE_OLD_FILAMENT = 0x07,\n  STEP_CHECK_POSITION = 0x08\n}\n\n/**\n * Type of filament operation being performed\n */\nexport enum FilamentOperation {\n  LOAD,\n  UNLOAD\n}\n\ninterface AMSTray {\n  id: number;\n  tray_color: string;\n  tray_type: string;\n  tray_sub_brands: string;\n  is_bbl: boolean;\n  read_done: boolean;\n}\n\ninterface AMSUnit {\n  id: number;\n  tray: AMSTray[];\n}\n\nexport class MachineObject {\n  // AMS Status\n  ams_status_main: AmsStatusMain = AmsStatusMain.AMS_STATUS_MAIN_UNKNOWN;\n  ams_status_sub: number = 0;\n  hw_switch_state: number = 0;\n  m_tray_now: string = \"\";\n\n  // AMS Physical State\n  ams_exist_bits: number = 0;\n  tray_exist_bits: number = 0;\n  tray_is_bbl_bits: number = 0;\n  tray_read_done_bits: number = 0;\n  ams_version?: number;\n  \n  // AMS Units\n  amsList: AMSUnit[] = [];\n\n  constructor(state?: PushAllResponse) {\n    if (state) {\n      this.parseState(state);\n    }\n  }\n\n  /**\n   * Check if printer has any AMS units\n   */\n  hasAms(): boolean {\n    return this.ams_exist_bits !== 0;\n  }\n\n  /**\n   * Get number of AMS units\n   */\n  getAmsCount(): number {\n    let count = 0;\n    for (let i = 0; i < 32; i++) {\n      if (this.ams_exist_bits & (1 << i)) count++;\n    }\n    return count;\n  }\n\n  /**\n   * Check if specific AMS exists\n   */\n  isAmsExist(ams_id: number): boolean {\n    return (this.ams_exist_bits & (1 << ams_id)) !== 0;\n  }\n\n  /**\n   * Check if tray exists in specific AMS\n   */\n  isTrayExist(ams_id: number, tray_id: number): boolean {\n    const globalIndex = (ams_id * 4) + tray_id;\n    return (this.tray_exist_bits & (1 << globalIndex)) !== 0;\n  }\n\n  /**\n   * Check if tray contains Bambu Lab filament\n   */\n  isBambuFilament(ams_id: number, tray_id: number): boolean {\n    const globalIndex = (ams_id * 4) + tray_id;\n    return (this.tray_is_bbl_bits & (1 << globalIndex)) !== 0;\n  }\n\n  /**\n   * Check if tray RFID has been read\n   */\n  isRfidReadDone(ams_id: number, tray_id: number): boolean {\n    const globalIndex = (ams_id * 4) + tray_id;\n    return (this.tray_read_done_bits & (1 << globalIndex)) !== 0;\n  }\n\n  /**\n   * Parse AMS status from raw status value\n   * @param ams_status Raw AMS status value from printer\n   */\n  private _parse_ams_status(ams_status: number) {\n    this.ams_status_sub = ams_status & 0xFF;\n    const ams_status_main_int = (ams_status & 0xFF00) >> 8;\n\n    switch(ams_status_main_int) {\n      case AmsStatusMain.AMS_STATUS_MAIN_IDLE:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_IDLE;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_RFID_IDENTIFYING:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_RFID_IDENTIFYING;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_ASSIST:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_ASSIST;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_CALIBRATION:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_CALIBRATION;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_SELF_CHECK:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_SELF_CHECK;\n        break;\n      case AmsStatusMain.AMS_STATUS_MAIN_DEBUG:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_DEBUG;\n        break;\n      default:\n        this.ams_status_main = AmsStatusMain.AMS_STATUS_MAIN_UNKNOWN;\n    }\n  }\n\n  /**\n   * Parse full printer state from PushAllResponse\n   * @param state Printer state response\n   */\n  parseState(state: PushAllResponse) {\n    // Parse AMS status if available\n    if (state.ams_status) {\n      this._parse_ams_status(state.ams_status);\n    }\n    \n    // Parse hardware switch state and current tray\n    const printerState = state as unknown as {\n      hw_switch_state?: number;\n      tray_now?: string;\n    };\n\n    if (printerState.hw_switch_state !== undefined) {\n      this.hw_switch_state = printerState.hw_switch_state;\n    }\n    \n    if (printerState.tray_now !== undefined) {\n      this.m_tray_now = printerState.tray_now;\n    }\n\n    // Parse AMS physical state\n    if (state.ams?.ams_exist_bits) {\n      this.ams_exist_bits = parseInt(state.ams.ams_exist_bits, 16);\n    }\n\n    if (state.ams?.tray_exist_bits) {\n      this.tray_exist_bits = parseInt(state.ams.tray_exist_bits, 16);\n    }\n\n    if (state.ams?.tray_is_bbl_bits) {\n      this.tray_is_bbl_bits = parseInt(state.ams.tray_is_bbl_bits, 16);\n    }\n\n    if (state.ams?.tray_read_done_bits) {\n      this.tray_read_done_bits = parseInt(state.ams.tray_read_done_bits, 16);\n    }\n\n    if (state.ams?.version !== undefined) {\n      this.ams_version = state.ams.version;\n    }\n\n    // Parse AMS units and trays\n    this.amsList = [];\n    if (state.ams?.ams) {\n      state.ams.ams.forEach((ams, amsIndex) => {\n        if (!ams?.tray) return;\n\n        const amsUnit: AMSUnit = {\n          id: amsIndex,\n          tray: []\n        };\n\n        ams.tray.forEach((tray, trayIndex) => {\n          if (!tray) return;\n\n          const globalIndex = (amsIndex * 4) + trayIndex;\n          amsUnit.tray.push({\n            id: trayIndex,\n            tray_color: tray.tray_color || '',\n            tray_type: tray.tray_type || '',\n            tray_sub_brands: tray.tray_sub_brands || '',\n            is_bbl: this.isBambuFilament(amsIndex, trayIndex),\n            read_done: this.isRfidReadDone(amsIndex, trayIndex)\n          });\n        });\n\n        this.amsList.push(amsUnit);\n      });\n    }\n  }\n\n  /**\n   * Check if AMS is waiting for filament load confirmation\n   * @returns true if waiting for confirmation, false otherwise\n   */\n  isWaitingFilamentConfirmation(): boolean {\n    return this.ams_status_main === AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE && \n           this.ams_status_sub === 0x06;\n  }\n\n  /**\n   * Check if filament is at extruder\n   * @returns true if filament is detected at extruder\n   */\n  isFilamentAtExtruder(): boolean {\n    return this.hw_switch_state === 1;\n  }\n\n  /**\n   * Static method to check if printer state indicates waiting for filament confirmation\n   * @param state Full printer state response\n   * @returns true if waiting for confirmation, false otherwise\n   */\n  static isWaitingFilamentConfirmation(state: PushAllResponse): boolean {\n    const machine = new MachineObject(state);\n    return machine.isWaitingFilamentConfirmation();\n  }\n\n  /**\n   * Get the current filament step\n   * @returns Current FilamentStep or STEP_IDLE if not in filament change\n   */\n  getCurrentFilamentStep(): FilamentStep {\n    if (this.ams_status_main !== AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE) {\n      return FilamentStep.STEP_IDLE;\n    }\n    return this.ams_status_sub as FilamentStep;\n  }\n\n  /**\n   * Get human-readable status text for the current filament operation\n   * @returns Status text describing current operation\n   */\n  getFilamentStatusText(): string {\n    if (this.ams_status_main !== AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE) {\n      return \"Idle\";\n    }\n\n    switch (this.ams_status_sub) {\n      case FilamentStep.STEP_HEAT_NOZZLE:\n        return \"Heating nozzle...\";\n      case FilamentStep.STEP_CUT_FILAMENT:\n        return \"Cutting filament...\";\n      case FilamentStep.STEP_PULL_CURR_FILAMENT:\n        return \"Pulling current filament...\";\n      case FilamentStep.STEP_PUSH_NEW_FILAMENT:\n        return \"Pushing new filament...\";\n      case FilamentStep.STEP_CONFIRM_EXTRUDED:\n        return \"Please confirm filament is loaded correctly\";\n      case FilamentStep.STEP_PURGE_OLD_FILAMENT:\n        return \"Purging old filament...\";\n      case FilamentStep.STEP_CHECK_POSITION:\n        return \"Checking position...\";\n      default:\n        return \"Unknown state\";\n    }\n  }\n\n  /**\n   * Check if currently performing a filament change operation\n   * @returns true if in filament change mode\n   */\n  isInFilamentChange(): boolean {\n    return this.ams_status_main === AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE;\n  }\n\n  /**\n   * Get the current filament operation type\n   * @returns FilamentOperation.LOAD or FilamentOperation.UNLOAD\n   */\n  getFilamentOperation(): FilamentOperation {\n    // In BambuStudio, m_tray_now = \"255\" indicates unload operation\n    return this.m_tray_now === \"255\" ? FilamentOperation.UNLOAD : FilamentOperation.LOAD;\n  }\n\n  /**\n   * Get AMS unit by ID\n   * @param ams_id AMS unit ID\n   * @returns AMSUnit if found, undefined otherwise\n   */\n  getAmsUnit(ams_id: number): AMSUnit | undefined {\n    return this.amsList.find(ams => ams.id === ams_id);\n  }\n\n  /**\n   * Get tray by AMS ID and tray ID\n   * @param ams_id AMS unit ID\n   * @param tray_id Tray ID within the AMS unit\n   * @returns AMSTray if found, undefined otherwise\n   */\n  getTray(ams_id: number, tray_id: number): AMSTray | undefined {\n    const ams = this.getAmsUnit(ams_id);\n    return ams?.tray.find(t => t.id === tray_id);\n  }\n\n  /**\n   * Check if two trays are compatible (same type and color)\n   * @param ams_id1 First AMS unit ID\n   * @param tray_id1 First tray ID\n   * @param ams_id2 Second AMS unit ID\n   * @param tray_id2 Second tray ID\n   * @returns true if trays are compatible\n   */\n  areTraysCompatible(ams_id1: number, tray_id1: number, ams_id2: number, tray_id2: number): boolean {\n    const tray1 = this.getTray(ams_id1, tray_id1);\n    const tray2 = this.getTray(ams_id2, tray_id2);\n\n    if (!tray1 || !tray2) return false;\n\n    return tray1.tray_type === tray2.tray_type && \n           tray1.tray_color === tray2.tray_color;\n  }\n\n  /**\n   * Find all compatible trays for a given tray\n   * @param ams_id AMS unit ID\n   * @param tray_id Tray ID\n   * @returns Array of compatible tray locations\n   */\n  findCompatibleTrays(ams_id: number, tray_id: number): Array<{ams_id: number, tray_id: number}> {\n    const sourceTray = this.getTray(ams_id, tray_id);\n    if (!sourceTray) return [];\n\n    const compatible: Array<{ams_id: number, tray_id: number}> = [];\n\n    this.amsList.forEach(ams => {\n      ams.tray.forEach(tray => {\n        if (ams.id === ams_id && tray.id === tray_id) return; // Skip self\n\n        if (tray.tray_type === sourceTray.tray_type && \n            tray.tray_color === sourceTray.tray_color) {\n          compatible.push({ams_id: ams.id, tray_id: tray.id});\n        }\n      });\n    });\n\n    return compatible;\n  }\n\n  /**\n   * Get the state of a specific tray\n   * @param ams_id AMS unit ID\n   * @param tray_id Tray ID\n   * @returns Object containing tray state information\n   */\n  getTrayState(ams_id: number, tray_id: number): {\n    exists: boolean;\n    isBambuLab: boolean;\n    rfidRead: boolean;\n    tray?: AMSTray\n  } {\n    return {\n      exists: this.isTrayExist(ams_id, tray_id),\n      isBambuLab: this.isBambuFilament(ams_id, tray_id),\n      rfidRead: this.isRfidReadDone(ams_id, tray_id),\n      tray: this.getTray(ams_id, tray_id)\n    };\n  }\n\n  /**\n   * Parses the home_flag bitfield from BambuStudio and returns an object with all extracted flags.\n   * @param home_flag The integer bitfield from the printer status (e.g., from pushall response)\n   * @returns An object with all extracted flags as booleans or numbers\n   */\n  static parseHomeFlag(home_flag: number) {\n    return {\n      is220V:               ((home_flag >> 3) & 1) !== 0,\n      xcamAutoRecoveryStepLoss: ((home_flag >> 4) & 1) !== 0,\n      cameraRecording:      ((home_flag >> 5) & 1) !== 0,\n      amsCalibrateRemain:   ((home_flag >> 7) & 1) !== 0,\n      sdcardState:          (home_flag >> 8) & 0x11, // bits 8 and 4\n      amsAutoSwitchFilament:((home_flag >> 10) & 1) !== 0,\n      xcamAllowPromptSound: ((home_flag >> 17) & 1) !== 0,\n      isSupportPromptSound: ((home_flag >> 18) & 1) !== 0,\n      isSupportFilamentTangleDetect: ((home_flag >> 19) & 1) !== 0,\n      xcamFilamentTangleDetect: ((home_flag >> 20) & 1) !== 0,\n      isSupportMotorNoiseCali: ((home_flag >> 21) & 1) !== 0,\n      isSupportUserPreset:  ((home_flag >> 22) & 1) !== 0,\n      nozzleBlobDetectionEnabled: ((home_flag >> 24) & 1) !== 0,\n      isSupportNozzleBlobDetection: ((home_flag >> 25) & 1) !== 0,\n      installedPlus:        ((home_flag >> 26) & 1) !== 0,\n      supportedPlus:        ((home_flag >> 27) & 1) !== 0,\n      amsAirPrintStatus:    ((home_flag >> 28) & 1) !== 0,\n      isSupportAirPrintDetection: ((home_flag >> 29) & 1) !== 0,\n      isSupportAgora:       ((home_flag >> 30) & 1) !== 0,\n    };\n  }\n}\n\n/**\n * Check if AMS is waiting for filament load confirmation\n * @param ams_status The raw ams_status value from printer state\n * @returns true if waiting for confirmation, false otherwise\n * \n * Status format:\n * - High byte (main status): 0x01 = AMS_STATUS_MAIN_FILAMENT_CHANGE\n * - Low byte (sub status): 0x06 = Waiting for confirmation\n * Example: status 260 (0x104) = Waiting for confirmation\n */\nexport function isWaitingFilamentConfirmation(ams_status: number): boolean {\n    const ams_status_main = (ams_status & 0xFF00) >> 8;\n    const ams_status_sub = ams_status & 0xFF;\n    \n    return (ams_status_main === AmsStatusMain.AMS_STATUS_MAIN_FILAMENT_CHANGE) && \n           (ams_status_sub === 0x06);\n}\n\n/**\n * Calculates filament backup groups based on compatible filaments in AMS slots.\n * Compatible filaments must have the same type and color.\n * \n * @param printerData - The printer data containing AMS information\n * @returns Array of bitmap values where each bit represents an AMS slot in that backup group\n */\ninterface FilamentBackupGroup {\n    slots: number[];  // Array of slot indices that are compatible\n}\n\n/**\n * Parses filam_bak bitmaps to determine which filament slots are compatible backups\n * @param filam_bak Array of bitmaps where each bit represents an AMS slot\n * @returns Array of FilamentBackupGroup objects, each containing compatible slot indices\n * \n * @example\n * // Input: [3, 12]  (binary: 0011 and 1100)\n * // Returns: [\n * //   { slots: [0, 1] },   // Slots 0 and 1 are compatible\n * //   { slots: [2, 3] }    // Slots 2 and 3 are compatible\n * // ]\n */\nexport function parseFilamBak(filam_bak: number[]): FilamentBackupGroup[] {\n    const groups: FilamentBackupGroup[] = [];\n    \n    for (const bitmap of filam_bak) {\n        const group: FilamentBackupGroup = {\n            slots: []\n        };\n        \n        // Check each bit position (0-15 for up to 16 slots)\n        for (let i = 0; i < 16; i++) {\n            // If bit is set (1), this slot is part of the group\n            if ((bitmap & (1 << i)) !== 0) {\n                group.slots.push(i);\n            }\n        }\n        \n        // Only add groups with 2 or more compatible slots\n        if (group.slots.length >= 2) {\n            groups.push(group);\n        }\n    }\n    \n    return groups;\n}\n\ninterface EnrichedTray {\n    ams_id: number;\n    tray_id: number;\n    type: string;\n    color: string;\n    backup_slots?: {        // Other slots in the same backup group\n        ams_id: number;\n        tray_id: number;\n    }[];\n}\n\ninterface EnrichedAms {\n    id: number;\n    trays: EnrichedTray[];\n}\n\nexport function getEnrichedAmsData(printerData: PushAllResponse): EnrichedAms[] {\n    const enrichedAms: EnrichedAms[] = [];\n    \n    if (!printerData.ams?.ams) return enrichedAms;\n    \n    // Parse filament backup groups\n    const backupGroups = parseFilamBak(printerData.filam_bak);\n    \n    printerData.ams.ams.forEach((ams, amsIndex) => {\n        if (!ams?.tray) return;\n        \n        const enrichedUnit: EnrichedAms = {\n            id: amsIndex,\n            trays: []\n        };\n        \n        ams.tray.forEach((tray, trayIndex) => {\n            if (!tray) return;\n            \n            const globalSlotIndex = (amsIndex * 4) + trayIndex;\n            \n            // Find backup slots for this tray\n            const backupSlots: Array<{ams_id: number, tray_id: number}> = [];\n            \n            backupGroups.forEach(group => {\n                if (group.slots.includes(globalSlotIndex)) {\n                    group.slots.forEach(slotIndex => {\n                        if (slotIndex !== globalSlotIndex) {\n                            const backupAmsId = Math.floor(slotIndex / 4);\n                            const backupTrayId = slotIndex % 4;\n                            backupSlots.push({\n                                ams_id: backupAmsId,\n                                tray_id: backupTrayId\n                            });\n                        }\n                    });\n                }\n            });\n            \n            enrichedUnit.trays.push({\n                ams_id: amsIndex,\n                tray_id: trayIndex,\n                type: tray.tray_type || '',\n                color: tray.tray_color || '',\n                backup_slots: backupSlots.length > 0 ? backupSlots : undefined\n            });\n        });\n        \n        enrichedAms.push(enrichedUnit);\n    });\n    \n    return enrichedAms;\n}\n\nexport function calculateFilamBak(printerData: PushAllResponse): number[] {\n    const filamBak: number[] = [];\n    \n    if (!printerData.ams?.ams) return filamBak;\n    \n    // Build a map of filament groups by type and color\n    const filamentGroups = new Map<string, number[]>();\n    \n    printerData.ams.ams.forEach((ams, amsIndex) => {\n        if (!ams?.tray) return;\n        \n        ams.tray.forEach((tray, trayIndex) => {\n            if (!tray) return;\n            \n            const globalSlotIndex = (amsIndex * 4) + trayIndex;\n            const key = `${tray.tray_type}-${tray.tray_color}`;\n            \n            if (!filamentGroups.has(key)) {\n                filamentGroups.set(key, []);\n            }\n            filamentGroups.get(key)!.push(globalSlotIndex);\n        });\n    });\n    \n    // Convert groups to bitmaps\n    filamentGroups.forEach((slots) => {\n        if (slots.length > 1) {\n            let bitmap = 0;\n            slots.forEach(slotIndex => {\n                bitmap |= (1 << slotIndex);\n            });\n            filamBak.push(bitmap);\n        }\n    });\n    \n    return filamBak;\n}","// This file is auto-generated. Do not edit manually.\n// Generated on 2025-03-17T18:04:23.983Z\n\ninterface ModelSpecificSettings {\n    setting_id?: string;\n    compatible_printers?: string[];\n    [key: string]: any;\n}\n\ninterface FilamentTypeSettings {\n    filament_id: string;\n    vendor: string;\n    base_settings: {\n        [key: string]: any;\n    };\n    model_settings: {\n        [printerModel: string]: ModelSpecificSettings;\n    };\n}\n\ninterface FilamentMapping {\n    [materialType: string]: FilamentTypeSettings;\n}\n\nexport const FILAMENT_MAPPINGS: FilamentMapping = {\n  \"ABS\": {\n    \"filament_id\": \"GFB00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB00_07\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"16\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"slow_down_layer_time\": [\n          \"12\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB00\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"16\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"slow_down_layer_time\": [\n          \"12\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB00_04\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\"\n        ]\n      }\n    }\n  },\n  \"ABS-GF\": {\n    \"filament_id\": \"GFB50\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_cooling_layer_time\": [\n        \"12\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.08\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_type\": [\n        \"ABS-GF\"\n      ],\n      \"overhang_fan_speed\": [\n        \"30\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"4\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB50_02\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSB50_01\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB50_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"ASA\": {\n    \"filament_id\": \"GFB01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_max_speed\": [\n        \"35\"\n      ],\n      \"filament_cost\": [\n        \"31.99\"\n      ],\n      \"filament_density\": [\n        \"1.05\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"18\"\n      ],\n      \"nozzle_temperature\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"270\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSB01_00\",\n        \"instantiation\": \"true\",\n        \"fan_min_speed\": [\n          \"25\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB01_05\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"ASA-Aero\": {\n    \"filament_id\": \"GFB02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: ASA Aero Printing Guide.\",\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"50\"\n      ],\n      \"fan_min_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"49.99\"\n      ],\n      \"filament_density\": [\n        \"0.99\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.52\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_retraction_length\": [\n        \"1.5\"\n      ],\n      \"filament_type\": [\n        \"ASA-Aero\"\n      ],\n      \"filament_wipe_distance\": [\n        \"5\"\n      ],\n      \"filament_z_hop_types\": [\n        \"Normal Lift\"\n      ],\n      \"nozzle_temperature\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"270\"\n      ],\n      \"overhang_fan_speed\": [\n        \"50\"\n      ],\n      \"reduce_fan_stop_start_freq\": [\n        \"0\"\n      ],\n      \"slow_down_layer_time\": [\n        \"5\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB02_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSB02_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB02_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"ASA-CF\": {\n    \"filament_id\": \"GFB51\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"fan_max_speed\": [\n        \"25\"\n      ],\n      \"filament_cost\": [\n        \"36.99\"\n      ],\n      \"filament_density\": [\n        \"1.02\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.9\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"18\"\n      ],\n      \"filament_type\": [\n        \"ASA-CF\"\n      ],\n      \"nozzle_temperature\": [\n        \"275\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"275\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"250\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"temperature_vitrification\": [\n        \"108\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB51_04\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSB51_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB51_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PA-CF\": {\n    \"filament_id\": \"GFN03\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_cost\": [\n        \"84.99\"\n      ],\n      \"filament_density\": [\n        \"1.09\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.96\"\n      ],\n      \"filament_type\": [\n        \"PA-CF\"\n      ],\n      \"nozzle_temperature\": [\n        \"280\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"280\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"temperature_vitrification\": [\n        \"170\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSN03_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"5\"\n        ],\n        \"fan_max_speed\": [\n          \"30\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"full_fan_speed_layer\": [\n          \"2\"\n        ],\n        \"nozzle_temperature\": [\n          \"290\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"290\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSN00\",\n        \"instantiation\": \"true\",\n        \"nozzle_temperature_initial_layer\": [\n          \"290\"\n        ],\n        \"nozzle_temperature\": [\n          \"290\"\n        ],\n        \"fan_max_speed\": [\n          \"30\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"fan_cooling_layer_time\": [\n          \"5\"\n        ],\n        \"full_fan_speed_layer\": [\n          \"2\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSN03_00\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PA6-CF\": {\n    \"filament_id\": \"GFN05\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_cooling_layer_time\": [\n        \"5\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"79.99\"\n      ],\n      \"filament_density\": [\n        \"1.10\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.96\"\n      ],\n      \"filament_type\": [\n        \"PA6-CF\"\n      ],\n      \"nozzle_temperature\": [\n        \"275\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"275\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"temperature_vitrification\": [\n        \"170\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSN05_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSN05_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSN05_03\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PA6-GF\": {\n    \"filament_id\": \"GFN08\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_cooling_layer_time\": [\n        \"5\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"59.99\"\n      ],\n      \"filament_density\": [\n        \"1.14\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.96\"\n      ],\n      \"filament_type\": [\n        \"PA-GF\"\n      ],\n      \"full_fan_speed_layer\": [\n        \"2\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"temperature_vitrification\": [\n        \"180\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSN08_02\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"10.5\"\n        ],\n        \"nozzle_temperature\": [\n          \"265\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"265\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSN08_01\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"10.5\"\n        ],\n        \"nozzle_temperature\": [\n          \"265\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"265\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSN08_00\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"10.5\"\n        ],\n        \"nozzle_temperature\": [\n          \"265\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"265\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PAHT-CF\": {\n    \"filament_id\": \"GFN04\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_cooling_layer_time\": [\n        \"5\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"94.99\"\n      ],\n      \"filament_density\": [\n        \"1.06\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.96\"\n      ],\n      \"filament_type\": [\n        \"PA-CF\"\n      ],\n      \"full_fan_speed_layer\": [\n        \"2\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"temperature_vitrification\": [\n        \"180\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSN04_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSN04\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PC\": {\n    \"filament_id\": \"GFC00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"39.99\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.94\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSC00_14\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"100\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"slow_down_layer_time\": [\n          \"12\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1S\": {\n        \"setting_id\": \"GFSC00_05\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"100\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSC00\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"40\"\n        ],\n        \"slow_down_layer_time\": [\n          \"12\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSC00_12\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PET-CF\": {\n    \"filament_id\": \"GFT01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"80\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"80\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"5\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"84.99\"\n      ],\n      \"filament_density\": [\n        \"1.29\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"8\"\n      ],\n      \"filament_type\": [\n        \"PET-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"100\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"100\"\n      ],\n      \"nozzle_temperature\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"290\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"260\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"supertack_plate_temp\": [\n        \"80\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"80\"\n      ],\n      \"slow_down_layer_time\": [\n        \"2\"\n      ],\n      \"temperature_vitrification\": [\n        \"185\"\n      ],\n      \"textured_plate_temp\": [\n        \"100\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"100\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFST01_01\",\n        \"instantiation\": \"true\",\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"slow_down_min_speed\": [\n          \"20\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFST01\",\n        \"instantiation\": \"true\",\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"slow_down_min_speed\": [\n          \"20\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFST01_00\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PETG Basic\": {\n    \"filament_id\": \"GFG00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"40\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"8\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"230\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG00_06\",\n        \"instantiation\": \"true\",\n        \"filament_flow_ratio\": [\n          \"0.94\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"9\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG00_01\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"13\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PETG HF\": {\n    \"filament_id\": \"GFG02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"40\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.28\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"21\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature\": [\n        \"245\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"230\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG02_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"15\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"30\"\n        ],\n        \"filament_flow_ratio\": [\n          \"0.94\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"18\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"slow_down_layer_time\": [\n          \"7\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG02_06\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"15\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"30\"\n        ],\n        \"filament_flow_ratio\": [\n          \"0.94\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"18\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"slow_down_layer_time\": [\n          \"7\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG02_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"20\"\n        ],\n        \"fan_min_speed\": [\n          \"20\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"slow_down_min_speed\": [\n          \"20\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PETG Translucent\": {\n    \"filament_id\": \"GFG01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"To get better transparent or translucent results with the corresponding filament, please refer to this wiki: Printing tips for transparent PETG.\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature\": [\n        \"245\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"250\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"230\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG01_05\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"filament_retraction_length\": [\n          \"0.3\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG01_02\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"filament_retraction_length\": [\n          \"0.3\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG01_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"filament_retraction_length\": [\n          \"0.3\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PETG-CF\": {\n    \"filament_id\": \"GFG50\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"0\"\n      ],\n      \"filament_cost\": [\n        \"34.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"14\"\n      ],\n      \"filament_type\": [\n        \"PETG-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"240\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ],\n      \"temperature_vitrification\": [\n        \"70\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1M\": {\n        \"setting_id\": \"GFSG50_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"9\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG50_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"30\"\n        ],\n        \"fan_max_speed\": [\n          \"40\"\n        ],\n        \"fan_min_speed\": [\n          \"5\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"11.5\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PLA Aero\": {\n    \"filament_id\": \"GFA11\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This filament is only used to print models with a low density usually, and some special parameters are required. To get better printing quality, please refer to this wiki: Instructions for printing RC model with foaming PLA (PLA Aero).\",\n      \"fan_min_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"44.99\"\n      ],\n      \"filament_density\": [\n        \"1.21\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.6\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PLA-AERO\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"260\"\n      ],\n      \"supertack_plate_temp\": [\n        \"0\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA11_04\",\n        \"instantiation\": \"true\",\n        \"additional_cooling_fan_speed\": [\n          \"0\"\n        ],\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA11_03\",\n        \"instantiation\": \"true\",\n        \"additional_cooling_fan_speed\": [\n          \"0\"\n        ],\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA11_00\",\n        \"instantiation\": \"true\",\n        \"additional_cooling_fan_speed\": [\n          \"0\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA11_01\",\n        \"instantiation\": \"true\",\n        \"additional_cooling_fan_speed\": [\n          \"0\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Basic\": {\n    \"filament_id\": \"GFA00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"21\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"filament_scarf_height\": [\n        \"10%\"\n      ],\n      \"filament_scarf_gap\": [\n        \"0%\"\n      ],\n      \"filament_scarf_length\": [\n        \"10\"\n      ],\n      \"compatible_printers\": [],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA00_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA00_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA04\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA00\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Dynamic\": {\n    \"filament_id\": \"GFA13\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"31.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA13_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_flow_ratio\": [\n          \"0.98\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA13_08\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_flow_ratio\": [\n          \"0.98\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSA13_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"filament_flow_ratio\": [\n          \"0.98\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA13_00\",\n        \"instantiation\": \"true\",\n        \"filament_flow_ratio\": [\n          \"0.98\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Galaxy\": {\n    \"filament_id\": \"GFA15\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.19\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"21\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA15_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA15_07\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSA15_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA15_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Glow\": {\n    \"filament_id\": \"GFA12\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"18\"\n      ],\n      \"temperature_vitrification\": [\n        \"45\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA12_11\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSA12_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA12_08\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA12_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSA12_04\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Impact\": {\n    \"filament_id\": \"GFA03\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"25.4\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSA03\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"23.2\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PLA Marble\": {\n    \"filament_id\": \"GFA07\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA07_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA07_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA07_01\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA07_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Matte\": {\n    \"filament_id\": \"GFA01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.32\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"filament_scarf_height\": [\n        \"5%\"\n      ],\n      \"filament_scarf_gap\": [\n        \"0%\"\n      ],\n      \"filament_scarf_length\": [\n        \"10\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA01_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA01_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA05\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA01\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Metal\": {\n    \"filament_id\": \"GFA02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA02_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA02_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA02_02\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA02\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Silk\": {\n    \"filament_id\": \"GFA05\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.32\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_scarf_height\": [\n        \"5%\"\n      ],\n      \"filament_scarf_gap\": [\n        \"0%\"\n      ],\n      \"nozzle_temperature\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ],\n      \"supertack_plate_temp\": [\n        \"0\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA05_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA05_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"60\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA05_02\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA05_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Sparkle\": {\n    \"filament_id\": \"GFA08\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"29.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA08_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA08_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA08_01\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA08_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA Tough\": {\n    \"filament_id\": \"GFA09\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"28.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA09_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA09_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSA09_01\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA09_02\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"21\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PLA-CF\": {\n    \"filament_id\": \"GFA50\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"additional_cooling_fan_speed\": [\n        \"0\"\n      ],\n      \"cool_plate_temp\": [\n        \"45\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"45\"\n      ],\n      \"filament_cost\": [\n        \"34.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_type\": [\n        \"PLA-CF\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"250\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"supertack_plate_temp\": [\n        \"50\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"50\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSA50_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"nozzle_temperature\": [\n          \"230\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"230\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSA50_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"nozzle_temperature\": [\n          \"230\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"230\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSA50_01\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"nozzle_temperature\": [\n          \"230\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"230\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\nM142 P1 R35 S40\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PPA-CF\": {\n    \"filament_id\": \"GFN06\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\"\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSN06_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSN06_01\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PPS-CF\": {\n    \"filament_id\": \"GFT02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"175\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PPS-CF\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"310\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"25%\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"temperature_vitrification\": [\n        \"220\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1E\": {\n        \"setting_id\": \"GFST02_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PVA\": {\n    \"filament_id\": \"GFS04\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.\",\n      \"filament_cost\": [\n        \"79.98\"\n      ],\n      \"filament_density\": [\n        \"1.27\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"250\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"210\"\n      ],\n      \"slow_down_layer_time\": [\n        \"7\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS04_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"240\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS04_06\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"240\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSS04_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"240\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS04_00\",\n        \"instantiation\": \"true\",\n        \"nozzle_temperature\": [\n          \"240\"\n        ],\n        \"nozzle_temperature_initial_layer\": [\n          \"240\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support For PA PET\": {\n    \"filament_id\": \"GFS03\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"fan_cooling_layer_time\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"34.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"nozzle_temperature\": [\n        \"280\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"280\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"3\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS03_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS03_00\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support For PLA\": {\n    \"filament_id\": \"GFS02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"cool_plate_temp\": [\n        \"40\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"filament_cost\": [\n        \"69.98\"\n      ],\n      \"filament_density\": [\n        \"1.30\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS02_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS02_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"textured_plate_temp\": [\n          \"60\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS02_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support For PLA-PETG\": {\n    \"filament_id\": \"GFS05\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"fan_cooling_layer_time\": [\n        \"80\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"20\"\n      ],\n      \"filament_cost\": [\n        \"69.98\"\n      ],\n      \"filament_density\": [\n        \"1.19\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"hot_plate_temp\": [\n        \"60\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"60\"\n      ],\n      \"nozzle_temperature\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"210\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"textured_plate_temp\": [\n        \"60\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"60\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS05_06\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"65\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS05_04\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"65\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSS05_02\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"65\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS05_00\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"60\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support G\": {\n    \"filament_id\": \"GFS01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"fan_cooling_layer_time\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"34.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"nozzle_temperature\": [\n        \"280\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"280\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"3\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS01_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSS01_00\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support W\": {\n    \"filament_id\": \"GFS00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"cool_plate_temp\": [\n        \"40\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"filament_cost\": [\n        \"69.98\"\n      ],\n      \"filament_density\": [\n        \"1.30\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS00_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS00_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"textured_plate_temp\": [\n          \"60\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSS02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Support for ABS\": {\n    \"filament_id\": \"GFS06\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a non-water-soluble support filament, and usually it is only for the support structure and not for the model body. To get better printing quality, please refer to this wiki: Printing Tips for Support Filament and Support Function.\",\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"29.98\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_is_support\": [\n        \"1\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"filament_scarf_seam_type\": [\n        \"none\"\n      ],\n      \"temperature_vitrification\": [\n        \"90\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS06_01\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS06_00\",\n        \"instantiation\": \"true\",\n        \"filament_long_retractions_when_cut\": [\n          \"1\"\n        ],\n        \"filament_retraction_distances_when_cut\": [\n          \"18\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"TPU 95A\": {\n    \"filament_id\": \"GFU01\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.\",\n      \"filament_cost\": [\n        \"41.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"nozzle_temperature\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSU01_01\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"3.6\"\n        ],\n        \"hot_plate_temp\": [\n          \"45\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"textured_plate_temp\": [\n          \"45\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSU01_00\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"3.6\"\n        ],\n        \"hot_plate_temp\": [\n          \"30\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"30\"\n        ],\n        \"textured_plate_temp\": [\n          \"30\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"30\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSU01\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"3.6\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSU00\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"3.6\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"TPU 95A HF\": {\n    \"filament_id\": \"GFU00\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This filament is too soft and not compatible with the AMS. Printing it is of many requirements, and to get better printing quality, please refer to this wiki: TPU printing guide.\",\n      \"filament_cost\": [\n        \"41.99\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_retraction_length\": [\n        \"0.8\"\n      ],\n      \"nozzle_temperature\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSU00_06\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"45\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"textured_plate_temp\": [\n          \"45\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSU00_05\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"30\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"30\"\n        ],\n        \"textured_plate_temp\": [\n          \"30\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"30\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSU00_02\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"45\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"textured_plate_temp\": [\n          \"45\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"45\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"P1S\": {\n        \"setting_id\": \"GFSU00_03\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSU00_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSU00_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSU00_04\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"TPU for AMS\": {\n    \"filament_id\": \"GFU02\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.\",\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"50\"\n      ],\n      \"fan_min_speed\": [\n        \"20\"\n      ],\n      \"filament_cost\": [\n        \"38.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.97\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"18\"\n      ],\n      \"filament_type\": [\n        \"TPU-AMS\"\n      ],\n      \"nozzle_temperature\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"240\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"220\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"25%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"10\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSU02_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSU02_03\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSU02_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSU02_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PA12-CF\": {\n    \"filament_id\": \"GFL52\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"eng_plate_temp\": [\n        \"40\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"15\"\n      ],\n      \"fan_max_speed\": [\n        \"100\"\n      ],\n      \"filament_cost\": [\n        \"99.99\"\n      ],\n      \"filament_density\": [\n        \"1.06\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"14\"\n      ],\n      \"filament_type\": [\n        \"PA-CF\"\n      ],\n      \"full_fan_speed_layer\": [\n        \"2\"\n      ],\n      \"hot_plate_temp\": [\n        \"40\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"nozzle_temperature\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"260\"\n      ],\n      \"overhang_fan_speed\": [\n        \"100\"\n      ],\n      \"reduce_fan_stop_start_freq\": [\n        \"1\"\n      ],\n      \"temperature_vitrification\": [\n        \"131\"\n      ],\n      \"textured_plate_temp\": [\n        \"40\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"40\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL52_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PA6-CF\": {\n    \"filament_id\": \"GFL50\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"eng_plate_temp\": [\n        \"40\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"15\"\n      ],\n      \"fan_max_speed\": [\n        \"100\"\n      ],\n      \"filament_cost\": [\n        \"83.99\"\n      ],\n      \"filament_density\": [\n        \"1.17\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"14\"\n      ],\n      \"filament_type\": [\n        \"PA6-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"40\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"nozzle_temperature\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"280\"\n      ],\n      \"overhang_fan_speed\": [\n        \"100\"\n      ],\n      \"reduce_fan_stop_start_freq\": [\n        \"1\"\n      ],\n      \"temperature_vitrification\": [\n        \"215\"\n      ],\n      \"textured_plate_temp\": [\n        \"40\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"40\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL50_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PA6-GF\": {\n    \"filament_id\": \"GFL51\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"eng_plate_temp\": [\n        \"40\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"15\"\n      ],\n      \"fan_max_speed\": [\n        \"100\"\n      ],\n      \"filament_cost\": [\n        \"63.99\"\n      ],\n      \"filament_density\": [\n        \"1.2\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_type\": [\n        \"PA-GF\"\n      ],\n      \"full_fan_speed_layer\": [\n        \"2\"\n      ],\n      \"hot_plate_temp\": [\n        \"40\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"40\"\n      ],\n      \"nozzle_temperature\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"280\"\n      ],\n      \"overhang_fan_speed\": [\n        \"100\"\n      ],\n      \"reduce_fan_stop_start_freq\": [\n        \"1\"\n      ],\n      \"temperature_vitrification\": [\n        \"191\"\n      ],\n      \"textured_plate_temp\": [\n        \"40\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"40\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL51_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PA612-CF\": {\n    \"filament_id\": \"GFL53\",\n    \"vendor\": \"Bambu Lab\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"fan_cooling_layer_time\": [\n        \"5\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"94.99\"\n      ],\n      \"filament_density\": [\n        \"1.06\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.96\"\n      ],\n      \"full_fan_speed_layer\": [\n        \"2\"\n      ],\n      \"overhang_fan_speed\": [\n        \"40\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"0%\"\n      ],\n      \"temperature_vitrification\": [\n        \"180\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL53_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PET-CF\": {\n    \"filament_id\": \"GFL54\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"242\"\n      ],\n      \"fan_min_speed\": [\n        \"0\"\n      ],\n      \"filament_cost\": [\n        \"89.99\"\n      ],\n      \"filament_density\": [\n        \"1.34\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_type\": [\n        \"PET-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"300\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"270\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"supertack_plate_temp\": [\n        \"80\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"80\"\n      ],\n      \"slow_down_layer_time\": [\n        \"5\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"temperature_vitrification\": [\n        \"147\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL54_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PETG-ESD\": {\n    \"filament_id\": \"GFL06\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"60\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"60\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"15\"\n      ],\n      \"fan_min_speed\": [\n        \"0\"\n      ],\n      \"filament_cost\": [\n        \"0\"\n      ],\n      \"filament_density\": [\n        \"1.24\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"20\"\n      ],\n      \"hot_plate_temp\": [\n        \"60\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"60\"\n      ],\n      \"nozzle_temperature\": [\n        \"290\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"290\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"290\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"250\"\n      ],\n      \"slow_down_layer_time\": [\n        \"2\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"temperature_vitrification\": [\n        \"76\"\n      ],\n      \"textured_plate_temp\": [\n        \"60\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"60\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL06_00\",\n        \"instantiation\": \"true\",\n        \"filament_cost\": [\n          \"29.99\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Fiberon PETG-rCF\": {\n    \"filament_id\": \"GFL55\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"12\"\n      ],\n      \"fan_min_speed\": [\n        \"0\"\n      ],\n      \"filament_cost\": [\n        \"39.99\"\n      ],\n      \"filament_density\": [\n        \"1.3\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_type\": [\n        \"PETG-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"240\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"slow_down_layer_time\": [\n        \"2\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSL55_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic ABS\": {\n    \"filament_id\": \"GFB99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB99_05\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB99_03\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic ASA\": {\n    \"filament_id\": \"GFB98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB98_04\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB98_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic BVOH\": {\n    \"filament_id\": \"GFS97\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\"\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS97_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS97_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS97_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic EVA\": {\n    \"filament_id\": \"GFR99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"additional_cooling_fan_speed\": [\n        \"70\"\n      ],\n      \"close_fan_the_first_x_layers\": [\n        \"1\"\n      ],\n      \"cool_plate_temp\": [\n        \"35\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"35\"\n      ],\n      \"eng_plate_temp\": [\n        \"0\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"100\"\n      ],\n      \"fan_min_speed\": [\n        \"100\"\n      ],\n      \"filament_cost\": [\n        \"21.99\"\n      ],\n      \"filament_density\": [\n        \"0.94\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"hot_plate_temp\": [\n        \"55\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"55\"\n      ],\n      \"nozzle_temperature\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"220\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"175\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"50%\"\n      ],\n      \"reduce_fan_stop_start_freq\": [\n        \"1\"\n      ],\n      \"slow_down_layer_time\": [\n        \"4\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"temperature_vitrification\": [\n        \"70\"\n      ],\n      \"textured_plate_temp\": [\n        \"55\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"55\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSR99_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSR99_02\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSR99_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic HIPS\": {\n    \"filament_id\": \"GFS98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_is_support\": [\n        \"1\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS98_04\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"70\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"hot_plate_temp\": [\n          \"70\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"textured_plate_temp\": [\n          \"70\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS98_02\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"70\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"hot_plate_temp\": [\n          \"70\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"textured_plate_temp\": [\n          \"70\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"70\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSS98_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PC\": {\n    \"filament_id\": \"GFC99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_flow_ratio\": [\n        \"0.94\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSC99_07\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"100\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1S\": {\n        \"setting_id\": \"GFSC99_04\",\n        \"instantiation\": \"true\",\n        \"eng_plate_temp\": [\n          \"100\"\n        ],\n        \"eng_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSC99_06\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PCTG\": {\n    \"filament_id\": \"GFG97\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"40\"\n      ],\n      \"fan_min_speed\": [\n        \"10\"\n      ],\n      \"filament_cost\": [\n        \"28.99\"\n      ],\n      \"filament_density\": [\n        \"1.29\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"240\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"temperature_vitrification\": [\n        \"90\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG97_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG97_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG97_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PE\": {\n    \"filament_id\": \"GFP99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"40.99\"\n      ],\n      \"filament_density\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"8\"\n      ],\n      \"nozzle_temperature\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"220\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"175\"\n      ],\n      \"temperature_vitrification\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSP99_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSP99_02\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSP99_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PE-CF\": {\n    \"filament_id\": \"GFP98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"65.99\"\n      ],\n      \"filament_density\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PE-CF\"\n      ],\n      \"nozzle_temperature\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"210\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"220\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"175\"\n      ],\n      \"temperature_vitrification\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSP98_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSP98_02\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSP98_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PETG\": {\n    \"filament_id\": \"GFG99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"90\"\n      ],\n      \"fan_min_speed\": [\n        \"40\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG99_03\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"8\"\n        ],\n        \"hot_plate_temp\": [\n          \"80\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"textured_plate_temp\": [\n          \"80\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG99_00\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PETG HF\": {\n    \"filament_id\": \"GFG96\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"40\"\n      ],\n      \"filament_cost\": [\n        \"24.99\"\n      ],\n      \"filament_density\": [\n        \"1.28\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature\": [\n        \"220\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"220\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"25\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG96_04\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG96_06\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSG96_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG96_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PETG-CF\": {\n    \"filament_id\": \"GFG98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"fan_min_speed\": [\n        \"0\"\n      ],\n      \"filament_cost\": [\n        \"34.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"12\"\n      ],\n      \"filament_type\": [\n        \"PETG-CF\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"nozzle_temperature_range_high\": [\n        \"270\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"240\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if (bed_temperature[current_extruder] >80)||(bed_temperature_initial_layer[current_extruder] >80)}M106 P3 S255\\n{elsif (bed_temperature[current_extruder] >60)||(bed_temperature_initial_layer[current_extruder] >60)}M106 P3 S180\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG98_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"30\"\n        ],\n        \"fan_max_speed\": [\n          \"40\"\n        ],\n        \"fan_min_speed\": [\n          \"5\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"8\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG50\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"30\"\n        ],\n        \"fan_max_speed\": [\n          \"40\"\n        ],\n        \"fan_min_speed\": [\n          \"5\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"11.5\"\n        ],\n        \"overhang_fan_speed\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PHA\": {\n    \"filament_id\": \"GFR98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\"\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSR98_02\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\",\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSR98_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSR98_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PLA\": {\n    \"filament_id\": \"GFL99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"The generic presets are conservatively tuned for compatibility with a wider range of filaments. For higher printing quality and speeds, please use Bambu filaments with Bambu presets.\",\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\\n{endif};Prevent PLA from jamming\\n\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL99_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL99_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PLA High Speed\": {\n    \"filament_id\": \"GFL95\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"18\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL95_04\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL95_06\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"6\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\",\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSL95_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL95_00\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"4\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"Generic PLA Silk\": {\n    \"filament_id\": \"GFL96\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"To make the prints get higher gloss, please dry the filament before use, and set the outer wall speed to be 40 to 60 mm/s when slicing.\",\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"supertack_plate_temp\": [\n        \"35\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"35\"\n      ],\n      \"slow_down_layer_time\": [\n        \"8\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S255\\n{elsif(bed_temperature[current_extruder] >35)||(bed_temperature_initial_layer[current_extruder] >35)}M106 P3 S180\\n{endif};Prevent PLA from jamming\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL96_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"7.5\"\n        ],\n        \"filament_retraction_length\": [\n          \"0.5\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL96_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"7.5\"\n        ],\n        \"filament_retraction_length\": [\n          \"0.5\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"textured_plate_temp\": [\n          \"60\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PLA-CF\": {\n    \"filament_id\": \"GFL98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"additional_cooling_fan_speed\": [\n        \"0\"\n      ],\n      \"cool_plate_temp\": [\n        \"45\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"45\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_type\": [\n        \"PLA-CF\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"supertack_plate_temp\": [\n        \"50\"\n      ],\n      \"supertack_plate_temp_initial_layer\": [\n        \"50\"\n      ],\n      \"slow_down_layer_time\": [\n        \"7\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL98_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL98_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PP\": {\n    \"filament_id\": \"GFP97\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\"\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSP97_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSP97_02\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSP97_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PP-CF\": {\n    \"filament_id\": \"GFP96\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"77.99\"\n      ],\n      \"filament_density\": [\n        \"1.01\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PP-CF\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSP96_01\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSP96_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PP-GF\": {\n    \"filament_id\": \"GFP95\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"59.99\"\n      ],\n      \"filament_density\": [\n        \"1.05\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PP-GF\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSP95_00\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSP97_03\",\n        \"instantiation\": \"true\",\n        \"description\": \"This is neither a commonly used filament, nor one of Bambu filaments, and it varies a lot from brand to brand. So, it's highly recommended to ask its vendor for suitable profile before printing and adjust some parameters according to its performances.\",\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PPA-CF\": {\n    \"filament_id\": \"GFN97\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSN97_00\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"35\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"6.5\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSN97_01\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"fan_max_speed\": [\n          \"35\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"6.5\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PPA-GF\": {\n    \"filament_id\": \"GFN96\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_max_volumetric_speed\": [\n        \"6\"\n      ],\n      \"filament_type\": [\n        \"PPA-GF\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1C\": {\n        \"setting_id\": \"GFSN96_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSN96_01\",\n        \"instantiation\": \"true\",\n        \"chamber_temperatures\": [\n          \"60\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PPS\": {\n    \"filament_id\": \"GFT97\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\"\n    },\n    \"model_settings\": {\n      \"X1E\": {\n        \"setting_id\": \"GFST97_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PPS-CF\": {\n    \"filament_id\": \"GFT98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"When printing this filament, there's a risk of nozzle clogging, oozing, warping and low layer adhesion strength. To get better results, please refer to this wiki: Printing Tips for High Temp / Engineering materials.\",\n      \"fan_max_speed\": [\n        \"30\"\n      ],\n      \"filament_cost\": [\n        \"240\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"3\"\n      ],\n      \"filament_type\": [\n        \"PPS-CF\"\n      ],\n      \"nozzle_temperature_range_low\": [\n        \"310\"\n      ],\n      \"required_nozzle_HRC\": [\n        \"40\"\n      ],\n      \"temperature_vitrification\": [\n        \"220\"\n      ]\n    },\n    \"model_settings\": {\n      \"X1E\": {\n        \"setting_id\": \"GFST98_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic PVA\": {\n    \"filament_id\": \"GFS99\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"This is a water-soluble support filament, and usually it is only for the support structure and not for the model body. Printing this filament is of many requirements, and to get better printing quality, please refer to this wiki: PVA Printing Guide.\",\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ],\n      \"slow_down_layer_time\": [\n        \"7\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSS99_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSS99_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\",\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Generic TPU for AMS\": {\n    \"filament_id\": \"GFU98\",\n    \"vendor\": \"Generic\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"description\": \"If you are to print a kind of soft TPU, please don't slice with this profile, and it is only for TPU that has high enough hardness (not less than 55D) and is compatible with the AMS. To get better printing quality, please refer to this wiki: TPU printing guide.\",\n      \"filament_cost\": [\n        \"41.99\"\n      ],\n      \"filament_density\": [\n        \"1.26\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"10.5\"\n      ],\n      \"filament_retraction_length\": [\n        \"0.8\"\n      ],\n      \"filament_type\": [\n        \"TPU-AMS\"\n      ],\n      \"nozzle_temperature\": [\n        \"230\"\n      ],\n      \"nozzle_temperature_initial_layer\": [\n        \"230\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSU98_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"40\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSU98_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"40\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.8 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.4 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSU98_01\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"40\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSU98_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"40\"\n        ],\n        \"fan_max_speed\": [\n          \"50\"\n        ],\n        \"fan_min_speed\": [\n          \"10\"\n        ],\n        \"overhang_fan_threshold\": [\n          \"25%\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"Overture Matte PLA\": {\n    \"filament_id\": \"GFL05\",\n    \"vendor\": \"Overture\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"24.52\"\n      ],\n      \"filament_density\": [\n        \"1.22\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL05_07\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL05_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSL05_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSL05_02\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL05_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"Overture PLA\": {\n    \"filament_id\": \"GFL04\",\n    \"vendor\": \"Overture\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"24.15\"\n      ],\n      \"filament_density\": [\n        \"1.2\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"15\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL04_07\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL04_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSL04_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"50\"\n        ],\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSL04_01\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL04_05\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PolyLite ABS\": {\n    \"filament_id\": \"GFB60\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"26.9\"\n      ],\n      \"filament_density\": [\n        \"1.03\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"15\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB60_06\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSB60_04\",\n        \"instantiation\": \"true\",\n        \"fan_max_speed\": [\n          \"20\"\n        ],\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"reduce_fan_stop_start_freq\": [\n          \"0\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.8 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.4 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB60_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB60_01\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PolyLite ASA\": {\n    \"filament_id\": \"GFB61\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"23.6\"\n      ],\n      \"filament_density\": [\n        \"1.02\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"13\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSB61_07\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSB61_04\",\n        \"instantiation\": \"true\",\n        \"hot_plate_temp\": [\n          \"100\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"textured_plate_temp\": [\n          \"100\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"100\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSB61_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\"\n        ]\n      },\n      \"X1E\": {\n        \"setting_id\": \"GFSB61_02\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PolyLite PETG\": {\n    \"filament_id\": \"GFG60\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"cool_plate_temp\": [\n        \"0\"\n      ],\n      \"cool_plate_temp_initial_layer\": [\n        \"0\"\n      ],\n      \"eng_plate_temp\": [\n        \"70\"\n      ],\n      \"eng_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"fan_cooling_layer_time\": [\n        \"30\"\n      ],\n      \"fan_max_speed\": [\n        \"90\"\n      ],\n      \"fan_min_speed\": [\n        \"40\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ],\n      \"hot_plate_temp\": [\n        \"70\"\n      ],\n      \"hot_plate_temp_initial_layer\": [\n        \"70\"\n      ],\n      \"overhang_fan_speed\": [\n        \"90\"\n      ],\n      \"overhang_fan_threshold\": [\n        \"10%\"\n      ],\n      \"slow_down_layer_time\": [\n        \"12\"\n      ],\n      \"slow_down_min_speed\": [\n        \"20\"\n      ],\n      \"textured_plate_temp\": [\n        \"70\"\n      ],\n      \"textured_plate_temp_initial_layer\": [\n        \"70\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSG60_06\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"8\"\n        ],\n        \"hot_plate_temp\": [\n          \"80\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"nozzle_temperature_range_high\": [\n          \"270\"\n        ],\n        \"textured_plate_temp\": [\n          \"80\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\",\n          \"Bambu Lab A1 0.4 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSG60_04\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"8\"\n        ],\n        \"nozzle_temperature_range_high\": [\n          \"270\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"P1P\": {\n        \"setting_id\": \"GFSG60_02\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"11.5\"\n        ],\n        \"hot_plate_temp\": [\n          \"80\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"nozzle_temperature_range_high\": [\n          \"270\"\n        ],\n        \"textured_plate_temp\": [\n          \"80\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"80\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab P1P 0.4 nozzle\",\n          \"Bambu Lab P1P 0.6 nozzle\",\n          \"Bambu Lab P1P 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSG60_00\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"11.5\"\n        ],\n        \"nozzle_temperature_range_high\": [\n          \"270\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  },\n  \"PolyLite PLA\": {\n    \"filament_id\": \"GFL00\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"25.4\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.95\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL00_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL00_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSL23\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL19\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"15\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"PolyTerra PLA\": {\n    \"filament_id\": \"GFL01\",\n    \"vendor\": \"Polymaker\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"25.4\"\n      ],\n      \"filament_density\": [\n        \"1.31\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL01_02\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL01_00\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSL22\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL18\",\n        \"instantiation\": \"true\",\n        \"filament_max_volumetric_speed\": [\n          \"22\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ],\n        \"filament_start_gcode\": [\n          \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n        ]\n      }\n    }\n  },\n  \"eSUN PLA+\": {\n    \"filament_id\": \"GFL03\",\n    \"vendor\": \"eSUN\",\n    \"base_settings\": {\n      \"instantiation\": \"false\",\n      \"filament_cost\": [\n        \"22.99\"\n      ],\n      \"filament_density\": [\n        \"1.25\"\n      ],\n      \"filament_flow_ratio\": [\n        \"0.98\"\n      ],\n      \"filament_max_volumetric_speed\": [\n        \"16\"\n      ],\n      \"slow_down_layer_time\": [\n        \"6\"\n      ],\n      \"filament_start_gcode\": [\n        \"; filament start gcode\\n{if  (bed_temperature[current_extruder] >55)||(bed_temperature_initial_layer[current_extruder] >55)}M106 P3 S200\\n{elsif(bed_temperature[current_extruder] >50)||(bed_temperature_initial_layer[current_extruder] >50)}M106 P3 S150\\n{elsif(bed_temperature[current_extruder] >45)||(bed_temperature_initial_layer[current_extruder] >45)}M106 P3 S50\\n{endif}\\n\\n{if activate_air_filtration[current_extruder] && support_air_filtration}\\nM106 P3 S{during_print_exhaust_fan_speed_num[current_extruder]} \\n{endif}\"\n      ]\n    },\n    \"model_settings\": {\n      \"A1\": {\n        \"setting_id\": \"GFSL03_05\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"65\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 0.4 nozzle\",\n          \"Bambu Lab A1 0.6 nozzle\",\n          \"Bambu Lab A1 0.8 nozzle\"\n        ]\n      },\n      \"A1M\": {\n        \"setting_id\": \"GFSL03_03\",\n        \"instantiation\": \"true\",\n        \"fan_cooling_layer_time\": [\n          \"80\"\n        ],\n        \"fan_max_speed\": [\n          \"80\"\n        ],\n        \"fan_min_speed\": [\n          \"60\"\n        ],\n        \"hot_plate_temp\": [\n          \"60\"\n        ],\n        \"hot_plate_temp_initial_layer\": [\n          \"60\"\n        ],\n        \"slow_down_layer_time\": [\n          \"8\"\n        ],\n        \"textured_plate_temp\": [\n          \"65\"\n        ],\n        \"textured_plate_temp_initial_layer\": [\n          \"65\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab A1 mini 0.4 nozzle\",\n          \"Bambu Lab A1 mini 0.6 nozzle\",\n          \"Bambu Lab A1 mini 0.8 nozzle\"\n        ]\n      },\n      \"X1\": {\n        \"setting_id\": \"GFSL03_02\",\n        \"instantiation\": \"true\",\n        \"slow_down_layer_time\": [\n          \"10\"\n        ],\n        \"compatible_printers\": [\n          \"Bambu Lab X1 0.4 nozzle\",\n          \"Bambu Lab X1 0.6 nozzle\",\n          \"Bambu Lab X1 0.8 nozzle\"\n        ]\n      },\n      \"X1C\": {\n        \"setting_id\": \"GFSL03_00\",\n        \"instantiation\": \"true\",\n        \"compatible_printers\": [\n          \"Bambu Lab X1 Carbon 0.4 nozzle\",\n          \"Bambu Lab X1 Carbon 0.6 nozzle\",\n          \"Bambu Lab X1 Carbon 0.8 nozzle\",\n          \"Bambu Lab P1S 0.4 nozzle\",\n          \"Bambu Lab P1S 0.6 nozzle\",\n          \"Bambu Lab P1S 0.8 nozzle\",\n          \"Bambu Lab X1E 0.4 nozzle\",\n          \"Bambu Lab X1E 0.6 nozzle\",\n          \"Bambu Lab X1E 0.8 nozzle\"\n        ]\n      }\n    }\n  }\n};\n\n/**\n * Get the filament ID for a given material type\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @returns The filament ID or null if not found\n */\nexport function getFilamentId(materialType: string): string | null {\n    const profile = FILAMENT_MAPPINGS[materialType.trim()];\n    return profile ? profile.filament_id : null;\n}\n\n/**\n * Get all settings for a material type and printer model\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @param printerModel The printer model (e.g., \"X1C\", \"A1\")\n * @returns Combined settings (base + model specific) or null if not found\n */\nexport function getMaterialSettings(materialType: string, printerModel: string): any | null {\n    const normalizedMaterial = materialType.trim();\n    const normalizedPrinter = printerModel.replace(\"BBL \", \"\").trim();\n\n    const profile = FILAMENT_MAPPINGS[normalizedMaterial];\n    if (!profile) return null;\n\n    const modelSettings = profile.model_settings[normalizedPrinter];\n    if (!modelSettings) return null;\n\n    return {\n        ...profile.base_settings,\n        ...modelSettings,\n        filament_id: profile.filament_id,\n        vendor: profile.vendor\n    };\n}\n\n/**\n * List all compatible materials for a given printer model\n * @param printerModel The printer model (e.g., \"X1C\", \"A1\")\n * @returns Array of compatible material types\n */\nexport function getCompatibleMaterials(printerModel: string): string[] {\n    const normalizedPrinter = printerModel.replace(\"BBL \", \"\").trim();\n    \n    return Object.entries(FILAMENT_MAPPINGS)\n        .filter(([_, profile]) => normalizedPrinter in profile.model_settings)\n        .map(([materialType]) => materialType);\n}\n\n/**\n * Get all supported printer models\n * @returns Array of supported printer models\n */\nexport function getSupportedPrinters(): string[] {\n    const printers = new Set<string>();\n    \n    Object.values(FILAMENT_MAPPINGS).forEach(profile => {\n        Object.keys(profile.model_settings).forEach(printer => {\n            printers.add(printer);\n        });\n    });\n    \n    return Array.from(printers);\n}\n\n/**\n * Check if a material type exists in the mapping\n * @param materialType The material type to check\n * @returns boolean indicating if the material type exists\n */\nexport function isMaterialTypeSupported(materialType: string): boolean {\n    return materialType.trim() in FILAMENT_MAPPINGS;\n}\n\n/**\n * Get the vendor for a given material type\n * @param materialType The material type\n * @returns The vendor name or null if material type not found\n */\nexport function getMaterialVendor(materialType: string): string | null {\n    const profile = FILAMENT_MAPPINGS[materialType.trim()];\n    return profile ? profile.vendor : null;\n}\n\n/**\n * Get base settings for a material type\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @returns Base settings or null if not found\n */\nexport function getBaseSettings(materialType: string): any | null {\n    const profile = FILAMENT_MAPPINGS[materialType.trim()];\n    return profile ? profile.base_settings : null;\n}\n\n/**\n * Get settings for a material type and printer model, with fallback to defaults\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @param printerModel The printer model (e.g., \"X1C\", \"A1\")\n * @returns Combined settings (model-specific + base) or null if material not found\n */\nexport function getFilamentSettings(materialType: string, printerModel: string): any | null {\n    const normalizedMaterial = materialType.trim();\n    const normalizedPrinter = printerModel.replace(\"BBL \", \"\").trim();\n\n    const profile = FILAMENT_MAPPINGS[normalizedMaterial];\n    if (!profile) return null;\n\n    // Start with base settings\n    const settings = {\n        filament_id: profile.filament_id,\n        vendor: profile.vendor,\n        ...profile.base_settings\n    };\n\n    // If model-specific settings exist, override base settings\n    const modelSettings = profile.model_settings[normalizedPrinter];\n    if (modelSettings) {\n        return {\n            ...settings,\n            ...modelSettings\n        };\n    }\n\n    return settings;\n}\n\n/**\n * Check if model-specific settings exist for a material and printer combination\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @param printerModel The printer model (e.g., \"X1C\", \"A1\")\n * @returns boolean indicating if model-specific settings exist\n */\nexport function hasModelSpecificSettings(materialType: string, printerModel: string): boolean {\n    const normalizedMaterial = materialType.trim();\n    const normalizedPrinter = printerModel.replace(\"BBL \", \"\").trim();\n\n    const profile = FILAMENT_MAPPINGS[normalizedMaterial];\n    return profile ? normalizedPrinter in profile.model_settings : false;\n}\n\n/**\n * Get a specific setting value for a material and printer combination\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @param printerModel The printer model (e.g., \"X1C\", \"A1\")\n * @param settingKey The setting key to retrieve\n * @returns The setting value or null if not found\n */\nexport function getFilamentSetting(materialType: string, printerModel: string, settingKey: string): any | null {\n    const settings = getFilamentSettings(materialType, printerModel);\n    if (!settings) return null;\n\n    return settings[settingKey] ?? null;\n}\n\n/**\n * Get all available setting keys for a material type\n * @param materialType The type of material (e.g., \"PLA Basic\", \"ABS\")\n * @returns Array of setting keys or empty array if material not found\n */\nexport function getAvailableSettings(materialType: string): string[] {\n    const profile = FILAMENT_MAPPINGS[materialType.trim()];\n    if (!profile) return [];\n\n    const baseKeys = Object.keys(profile.base_settings);\n    const modelKeys = new Set<string>();\n\n    // Collect all unique setting keys from model-specific settings\n    Object.values(profile.model_settings).forEach(modelSettings => {\n        Object.keys(modelSettings).forEach(key => modelKeys.add(key));\n    });\n\n    return [...new Set([...baseKeys, ...modelKeys])];\n}"]}