{
    "header": {
        "version": 1,
        "type": "record"
    },
    "body": {
        "record1": {
            "<1>": "declare function fieldcount, msg\r\n$insert msg_equates\r\n$insert logical\r\nequate CrLf$ to char(13):char(10)\r\n\r\nRecipePromptCnt = get_property( @window, '@RecipePromptCnt' )\r\nRecipeControls = get_property( @window, '@RecipeControls' )\r\nCurLayerNo = get_property( @window, '@CurLayer' )\r\nAllLayers  = get_property( @window, '@RecipeInfo' )\r\nAllLayers = fieldstore( AllLayers, char(248), CurLayerNo, 1, char(243):'' )\r\nAcnt = fieldcount( AllLayers, char(248))\r\nif CurLayerNo = Acnt then\r\n   swap char(248):char(243) with '' in AllLayers\r\nend else\r\n   swap char(243):char(248) with '' in AllLayers\r\nend\r\nconvert char(243) to '' in AllLayers ;* if only one and they delete\r\n* the char 243 is left hanging\r\nVoid = set_property( @window, '@RecipeInfo', AllLayers )\r\n* now display the next recipe layer\r\nNextLayerData = field( AllLayers, char(248), CurLayerNo )\r\n*\r\nValueCnt = fieldcount( NextLayerData, @vm )\r\n* so set_property does not propagate\r\nif ValueCnt < RecipePromptCnt then\r\n   NextLayerData := str( @vm, RecipePromptCnt-ValueCnt-1 )\r\nend\r\n* ok\r\nNewLayer = false$\r\nif NextLayerData = str( @vm, RecipePromptCnt-1 ) then\r\n   * add the @fms for the conc\r\n   NewLayer = true$\r\nend\r\nconvert @vm to @rm in NextLayerData\r\nVoid = set_property( RecipeControls, 'INVALUE', NextLayerData )\r\nNumLayers = fieldcount( AllLayers, char(248) ) \r\n.layer_desc->text = CurLayerNo:' of ':NumLayers+NewLayer\r\nvoid = set_property( @window:'.EPI_DOPANT', 'FOCUS', 1 )    \r\nreturn 0"
        }
    }
}