module arch.node.engines.net_registry;

import arch.node.engines.net_registry_messages open public;
import arch.node.engines.net_registry_config open public;
import arch.node.engines.net_registry_environment open public;
import arch.node.engines.net_registry_behaviour open public;

import arch.node.types.basics open;
import arch.node.types.engine open;
import arch.node.types.anoma as Anoma open;

open registry_config_example;
open registry_environment_example;
open registry_behaviour_example;

NetworkRegistryEngine : Type :=
  Engine
    NetworkRegistryLocalCfg
    NetworkRegistryLocalState
    NetworkRegistryMailboxState
    NetworkRegistryTimerHandle
    NetworkRegistryActionArguments
    Anoma.Msg
    Anoma.Cfg
    Anoma.Env;

exNetworkRegistryEngine : NetworkRegistryEngine :=
  mkEngine@{
    cfg := exNetworkRegistryCfg;
    env := exNetworkRegistryEnv;
    behaviour := exNetworkRegistryBehaviour;
  };