-record(plugin, { name :: binary(), verify_conditions :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, nil} | {error, version_bump@error:release_error()})), analyze_commits :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, gleam@option:option(version_bump@semver:release_type())} | {error, version_bump@error:release_error()})), verify_release :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, nil} | {error, version_bump@error:release_error()})), generate_notes :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, binary()} | {error, version_bump@error:release_error()})), add_channel :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, gleam@option:option(version_bump@release:release())} | {error, version_bump@error:release_error()})), prepare :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, nil} | {error, version_bump@error:release_error()})), publish :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> version_bump@task:task({ok, gleam@option:option(version_bump@release:release())} | {error, version_bump@error:release_error()}))), success :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, nil} | {error, version_bump@error:release_error()})), fail :: gleam@option:option(fun((version_bump@config:plugin_spec(), version_bump@context:context()) -> {ok, nil} | {error, version_bump@error:release_error()})) }).