robot PatrolBot {
  trust certified;

  permissions [
    crypto.encrypt,
    crypto.sign,
    crypto.verify,
    identity.sign,
    identity.verify,
    secret.read,
    secure_topic.publish
  ];

  secrets {
    operator_key from env "OPERATOR_SIGNING_KEY";
  }

  identity RoverIdentity {
    id: "patrol-bot-01";
    public_key: "pub-patrol-01";
  }

  trust_boundary operator_to_robot;

  secure_comm {
    encryption: required;
    authentication: mutual;
    integrity: required;
  }

  topic motion_cmd: SafeAction publish on "/motion" secure {
    encryption required;
    signed required;
    trusted_sources [Navigator];
    reject_untrusted true;
  };

  agent Navigator {
    uses planner;
    tools [];
    goal "Navigate safely";
    can [ publish(motion_cmd), plan ];

    plan {
      let proposal: ActionProposal = planner.reason(prompt: "stop");
      let action: SafeAction = safety.validate(proposal);
      publish motion_cmd with action;
    }
  }

  ai_model planner: LLM { provider: "mock"; model: "test"; temperature: 0.1; }
  safety { max_speed = 1.0 m/s; }

  behavior run() {
    Navigator.plan();
  }
}
