\documentclass{standalone}
\usepackage[T1]{fontenc}
\BLOCK{ if not serif_font }\usepackage{helvet}
\renewcommand{\familydefault}{\sfdefault}\BLOCK{ endif }
\usepackage[dvipsnames,svgnames,x11names]{xcolor}
\usepackage{tikz}
\usetikzlibrary{shapes,arrows,positioning,calc,tikzmark}
\pgfdeclarelayer{background}
\pgfsetlayers{background, main}
\tikzset{
    connector/.style={
        \VAR{ arrow_style },
        font=\scriptsize
    },
    line/.style={
        font=\scriptsize
    },
    rectangle connector/.style={
        connector,
        to path={(\tikztostart) -- ++(#1,0pt) \tikztonodes |- (\tikztotarget) },
        pos=0.5
    },
    rectangle connector/.default=0.5cm,
    rectangle line/.style={
        line,
        to path={(\tikztostart) -- ++(#1,0pt) \tikztonodes |- (\tikztotarget) },
        pos=0.5
    },
    rectangle line/.default=0.5cm,
    straight connector/.style={
        connector,
        to path=--(\tikztotarget) \tikztonodes
    },
}
\BLOCK{ for color in color_defs}\definecolor{\VAR{color.name}}{HTML}{\VAR{color.hex_code}}
\BLOCK{ endfor }

\begin{document}
\begin{tikzpicture}[remember picture]

\BLOCK{ for block in blocks }\VAR{ block }\BLOCK{ endfor }

\BLOCK{ if final_block is not none }
\draw[\VAR{ final_block.arrow_options}] (\VAR{ final_block.id }.east) --++ (\VAR{ final_block.end_arrow_scaling * final_block.internal_arrow_length }cm, 0);
\BLOCK{ endif }

\end{tikzpicture}
\end{document}
