-record(platform, { vendor :: caffeine_lang@analysis@vendor:vendor(), provider_name :: binary(), provider_source :: binary(), provider_version :: binary(), provider_attributes :: list({binary(), terra_madre@hcl:expr()}), variables :: list(terra_madre@terraform:variable()), generate_resources :: fun((list(caffeine_lang@linker@ir:intermediate_representation(caffeine_lang@linker@ir:resolved()))) -> {ok, {list(terra_madre@terraform:resource()), list(binary())}} | {error, caffeine_lang@errors:compilation_error()}) }).