pub mod action;
pub mod capability;
pub mod manifest;
pub mod observation;
pub mod value;
pub use action::{ActionOutcome, InputCommand, Intent, Key, MouseButton, Point};
pub use capability::{Capability, TrustLevel};
pub use manifest::{
ApiVersion, GameMatcher, PluginId, PluginManifest, SignalDecl, SignalId, API_VERSION,
};
pub use observation::{Confidence, Observation, Signal};
pub use value::Value;
#[derive(Debug, thiserror::Error)]
pub enum PluginError {
#[error("plugin targets API version {found}, host supports {supported}")]
IncompatibleApi { found: String, supported: String },
#[error("manifest is invalid: {0}")]
InvalidManifest(String),
#[error("capability `{0}` was not granted to this plugin")]
CapabilityDenied(String),
#[error("observation failed: {0}")]
Observe(String),
#[error("action failed: {0}")]
Act(String),
}